Exemplo n.º 1
0
        /// <summary>
        /// get query fields
        /// </summary>
        /// <param name="entityType">entity type</param>
        /// <param name="query">query</param>
        /// <returns></returns>
        public static List <EntityField> GetQueryFields(ServerType serverType, Type entityType, IQuery query)
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(new List <EntityField>(0));
            }
            entityServerTypeCacheQueryFields.TryGetValue(key, out var fields);
            if (fields.IsNullOrEmpty())
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheQueryFields.TryGetValue(key, out fields);
            }
            if (fields.IsNullOrEmpty())
            {
                throw new Exception("empty fields");
            }
            if (query.QueryFields.IsNullOrEmpty() && query.NotQueryFields.IsNullOrEmpty())
            {
                return(fields);
            }
            var queryFields = query.GetActuallyQueryFields(entityType, true, true);

            return(fields.Intersect(queryFields).ToList());
        }
Exemplo n.º 2
0
        /// <summary>
        /// get fields
        /// </summary>
        /// <param name="serverType">server type</param>
        /// <param name="entityType">entity type</param>
        /// <param name="propertyNames">property name</param>
        /// <returns></returns>
        public static List <EntityField> GetFields(ServerType serverType, Type entityType, IEnumerable <string> propertyNames)
        {
            if (propertyNames.IsNullOrEmpty())
            {
                return(new List <EntityField>(0));
            }
            var propertyFields = propertyNames.Select <string, EntityField>(p => p).ToList();
            var key            = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(propertyFields);
            }
            entityServerTypeCacheFields.TryGetValue(key, out var allFields);
            if (allFields.IsNullOrEmpty())
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheFields.TryGetValue(key, out allFields);
                if (allFields.IsNullOrEmpty())
                {
                    return(propertyFields);
                }
            }
            for (var p = 0; p < propertyFields.Count; p++)
            {
                var propertyField = propertyFields[p];
                if (allFields.TryGetValue(propertyField.PropertyName, out var nowField) && nowField != null)
                {
                    propertyFields[p] = nowField;
                }
            }
            return(propertyFields);
        }
Exemplo n.º 3
0
        /// <summary>
        /// config entity fields to server type
        /// </summary>
        /// <param name="serverType">server type</param>
        /// <param name="entityType">entity type</param>
        /// <param name="fields">fields</param>
        /// <param name="cover">conver</param>
        public static void ConfigEntityFieldsToServerType(ServerType serverType, Type entityType, IEnumerable <EntityField> fields, bool cover = true)
        {
            if (entityType == null)
            {
                return;
            }
            var key = serverType.GetServerTypeAndEntityKey(entityType);

            ConfigEntityFieldsToServerType(key, entityType, fields, cover);
        }
Exemplo n.º 4
0
        /// <summary>
        /// config entity object name to server type
        /// </summary>
        /// <param name="serverType">server type</param>
        /// <param name="entityType">entity type</param>
        /// <param name="objectName">object name</param>
        /// <param name="cover">cover now object name</param>
        public static void ConfigEntityObjectNameToServerType(ServerType serverType, Type entityType, string objectName, bool cover = true)
        {
            if (entityType == null)
            {
                return;
            }
            var key = serverType.GetServerTypeAndEntityKey(entityType);

            ConfigEntityObjectNameToServerType(key, objectName, cover);
        }
Exemplo n.º 5
0
        /// <summary>
        /// get edit fields
        /// </summary>
        /// <param name="entityType">entity type</param>
        /// <returns></returns>
        public static List <EntityField> GetEditFields(ServerType serverType, Type entityType)
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(new List <EntityField>(0));
            }
            entityServerTypeCacheEditFields.TryGetValue(key, out var fields);
            if (fields.IsNullOrEmpty())
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheEditFields.TryGetValue(key, out fields);
            }
            return(fields ?? new List <EntityField>(0));
        }
Exemplo n.º 6
0
        /// <summary>
        ///get entity object name
        /// </summary>
        /// <param name="serverType">server type</param>
        /// <param name="entityType">entity type</param>
        /// <param name="searchEntityConfig">search entity config</param>
        /// <returns></returns>
        public static string GetEntityObjectName(ServerType serverType, Type entityType, string defaultName = "")
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (string.IsNullOrWhiteSpace(key))
            {
                return(defaultName);
            }
            entityServerTypeCacheObjectNames.TryGetValue(key, out var cacheObjectName);
            if (string.IsNullOrWhiteSpace(cacheObjectName))
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheObjectNames.TryGetValue(key, out cacheObjectName);
                cacheObjectName = string.IsNullOrWhiteSpace(cacheObjectName) ? defaultName : cacheObjectName;
            }
            return(cacheObjectName ?? string.Empty);
        }
Exemplo n.º 7
0
        /// <summary>
        /// config server type entity
        /// </summary>
        /// <param name="serverType">server type</param>
        /// <param name="entityType">entity type id</param>
        /// <param name="entityConfig">entity config</param>
        static void ConfigServerTypeEntity(ServerType serverType, Type entityType, ServerTypeEntityConfig entityConfig, bool cover = true)
        {
            if (entityConfig == null)
            {
                return;
            }
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (string.IsNullOrWhiteSpace(key))
            {
                return;
            }
            //config object name
            ConfigEntityObjectNameToServerType(key, entityConfig.TableName, cover);
            //config fields
            ConfigEntityFieldsToServerType(key, entityType, entityConfig.Fields, cover);
        }
Exemplo n.º 8
0
        /// <summary>
        /// get query fields
        /// </summary>
        /// <param name="entityType">entity type</param>
        /// <param name="query">query</param>
        /// <returns></returns>
        public static List <EntityField> GetQueryFields(ServerType serverType, Type entityType, IQuery query)
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(new List <EntityField>(0));
            }
            entityServerTypeCacheQueryFields.TryGetValue(key, out var fields);
            if (fields.IsNullOrEmpty())
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheQueryFields.TryGetValue(key, out fields);
            }
            if (fields.IsNullOrEmpty())
            {
                throw new Exception("empty fields");
            }
            return(fields);
        }
Exemplo n.º 9
0
        /// <summary>
        /// get default field
        /// </summary>
        /// <param name="entityType">entity type</param>
        /// <returns></returns>
        public static EntityField GetDefaultField(ServerType serverType, Type entityType)
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(string.Empty);
            }
            entityServerTypeCacheQueryFields.TryGetValue(key, out var fields);
            if (fields.IsNullOrEmpty())
            {
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheQueryFields.TryGetValue(key, out fields);
            }
            EntityField field = null;

            if (fields?.Count > 0)
            {
                field = fields[0];
            }
            field = field ?? string.Empty;
            return(field);
        }
Exemplo n.º 10
0
        /// <summary>
        ///  get field
        /// </summary>
        /// <param name="serverType">db server type</param>
        /// <param name="entityType">entity type</param>
        /// <param name="propertyName">property name</param>
        /// <returns></returns>
        public static EntityField GetField(ServerType serverType, Type entityType, string propertyName)
        {
            if (propertyName.IsNullOrEmpty())
            {
                return(string.Empty);
            }
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            if (key.IsNullOrEmpty())
            {
                return(string.Empty);
            }
            entityServerTypeCacheFields.TryGetValue(key, out var allFields);
            if (allFields.IsNullOrEmpty())
            {
                //config entity
                ConfigEntityToServerType(key, entityType);
                entityServerTypeCacheFields.TryGetValue(key, out allFields);
            }
            EntityField field = null;

            allFields?.TryGetValue(propertyName, out field);
            return(field ?? propertyName);
        }
Exemplo n.º 11
0
        /// <summary>
        /// register entity config
        /// </summary>
        /// <param name="entityConfig">entity config</param>
        static void ConfigEntityToServerType(ServerType serverType, Type entityType)
        {
            string key = serverType.GetServerTypeAndEntityKey(entityType);

            ConfigEntityToServerType(key, entityType);
        }