public DynamicPropertyEntity[] GetDynamicPropertiesForType(string objectType)
        {
            var retVal = DynamicProperties.Include(p => p.DisplayNames)
                         .Where(p => p.ObjectType == objectType)
                         .OrderBy(p => p.Name)
                         .ToArray();

            return(retVal);
        }
        public DynamicPropertyEntity[] GetDynamicPropertiesByIds(string[] ids)
        {
            var retVal = DynamicProperties.Include(x => x.DisplayNames)
                         .Where(x => ids.Contains(x.Id))
                         .OrderBy(x => x.Name)
                         .ToArray();

            return(retVal);
        }
        public virtual async Task <DynamicPropertyEntity[]> GetDynamicPropertiesByIdsAsync(string[] ids)
        {
            var retVal = await DynamicProperties.Include(x => x.DisplayNames)
                         .Where(x => ids.Contains(x.Id))
                         .OrderBy(x => x.Name)
                         .ToArrayAsync();

            return(retVal);
        }
        public DynamicPropertyEntity[] GetObjectDynamicProperties(string[] objectTypeNames, string[] objectIds)
        {
            var properties = DynamicProperties.Include(x => x.DisplayNames)
                             .OrderBy(x => x.Name)
                             .Where(x => objectTypeNames.Contains(x.ObjectType)).ToArray();

            var propertyIds = properties.Select(x => x.Id).ToArray();
            var proprValues = DynamicPropertyObjectValues.Include(x => x.DictionaryItem.DisplayNames)
                              .Where(x => propertyIds.Contains(x.PropertyId) && objectIds.Contains(x.ObjectId))
                              .ToArray();

            return(properties);
        }
        public DynamicPropertyEntity[] GetObjectDynamicProperties(string objectType, string objectId)
        {
            var retVal = DynamicProperties.Include(x => x.DisplayNames)
                         .Where(x => x.ObjectType == objectType)
                         .OrderBy(x => x.Name)
                         .ToArray();
            var propertyIds = retVal.Select(x => x.Id).ToArray();
            var proprValues = DynamicPropertyObjectValues.Include(x => x.DictionaryItem.DisplayNames)
                              .Where(x => propertyIds.Contains(x.PropertyId) && x.ObjectId == objectId)
                              .ToArray();

            return(retVal);
        }
        public virtual async Task <DynamicPropertyEntity[]> GetDynamicPropertiesForTypesAsync(string[] objectTypes)
        {
            if (objectTypes.IsNullOrEmpty())
            {
                return(Array.Empty <DynamicPropertyEntity>());
            }

            var retVal = await DynamicProperties.Include(p => p.DisplayNames)
                         .Where(p => objectTypes.Contains(p.ObjectType))
                         .OrderBy(p => p.Name)
                         .ToArrayAsync();

            return(retVal);
        }