示例#1
0
        private Series GetSeries(QueryEnum queryEnum, IndexEnum index, Random random, int times, DataEnum dataEnum)
        {
            var data = new List <object>();

            if (dataEnum == DataEnum.countries)
            {
                var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, DataSizeEnum.None, random), times);
                data.Add(speed);
            }
            else
            {
                foreach (var value in Enum.GetValues(typeof(DataSizeEnum)))
                {
                    if ((DataSizeEnum)value == DataSizeEnum.None)
                    {
                        continue;
                    }
                    var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, (DataSizeEnum)value, random), times);
                    if (speed.Equals(-1.0d))
                    {
                        break;
                    }
                    data.Add(speed);
                }
            }

            return(new Series
            {
                Name = index.ToString(),
                Data = new Data(data.ToArray())
            });
        }
示例#2
0
        /// <summary>
        /// in expression now is forbidden
        /// </summary>
        /// <param name="classType"></param>
        /// <param name="type"></param>
        /// <param name="queryEnum"></param>
        /// <returns></returns>
        public static string GetQuerySql(this Type classType, object type, QueryEnum queryEnum = QueryEnum.Equal)
        {
            if (type.GetType() != classType)
            {
                return(null);
            }
            var tempExp = " = ";

            if (queryEnum.Equals(QueryEnum.In))
            {
                tempExp = " = ";
            }
            var propsList = new List <string>();
            var ps        = classType.GetProperties();
            var tableName = classType.GetTableName();
            var exp       = " where ";

            foreach (var i in ps)
            {
                var temp = i.GetValue(type);
                if (temp == null)
                {
                    continue;
                }
                var isKey = i.IsPrimaryKey();
                if (isKey)
                {
                    propsList.Insert(0, i.Name);
                }

                else
                {
                    var relId = i.GetRelId();
                    if (!string.IsNullOrEmpty(relId))
                    {
                        exp = exp + relId + tempExp + "@" + i.Name + ",";
                        propsList.Add(relId);
                    }
                    else
                    {
                        propsList.Add(i.Name);
                    }
                }
            }

            var sqlText = "select ";

            foreach (var props in propsList)
            {
                sqlText += props + ",";
            }
            sqlText = sqlText.Substring(0, sqlText.Length - 1);
            sqlText = sqlText + " from " + tableName;
            exp     = exp.Substring(0, exp.Length - 1);
            exp     = exp.Replace(",", " and ");

            return(sqlText + exp);
        }
示例#3
0
        internal string GetQuery(QueryEnum Query)
        {
            switch (Query)
            {
            case QueryEnum.TableQuery:
                return(ReadResource.Read("SourcePlugins.SQLite.Resources.Queries.Queries.TableQuery.sql"));

            case QueryEnum.ColumnQuery:
                return(ReadResource.Read("SourcePlugins.SQLite.Resources.Queries.Queries.ColumnQuery.sql"));
            }
            return(null);
        }
 public static Query Get(QueryEnum queryEnum, IndexEnum index, DataEnum data, DataSizeEnum size, Random random)
 {
     switch (queryEnum)
     {
         case QueryEnum.FindPointsNearRandomPoints:
             return new FindPointsNearRandomPointsQuery(index, data, size, random);
         case QueryEnum.FindNearestNeighbours:
             return new FindNearestNeighboursQuery(index, data, size, random);
         case QueryEnum.TouchesAllToAll:
             return new TouchesAllToAllQuery(index, data, size, random);
     }
     return null;
 }
示例#5
0
        public static Query Get(QueryEnum queryEnum, IndexEnum index, DataEnum data, DataSizeEnum size, Random random)
        {
            switch (queryEnum)
            {
            case QueryEnum.FindPointsNearRandomPoints:
                return(new FindPointsNearRandomPointsQuery(index, data, size, random));

            case QueryEnum.FindNearestNeighbours:
                return(new FindNearestNeighboursQuery(index, data, size, random));

            case QueryEnum.TouchesAllToAll:
                return(new TouchesAllToAllQuery(index, data, size, random));
            }
            return(null);
        }
示例#6
0
        internal string GetQuery(QueryEnum Query)
        {
            switch (Query)
            {
            case QueryEnum.SchemaQuery:
                return(ReadResource.Read("SourcePlugins.PostgreSQL.Resources.Queries.Queries.SchemaQuery.sql"));

            case QueryEnum.TableQuery:
                return(ReadResource.Read("SourcePlugins.PostgreSQL.Resources.Queries.Queries.TableQuery.sql"));

            case QueryEnum.ColumnQuery:
                return(ReadResource.Read("SourcePlugins.PostgreSQL.Resources.Queries.Queries.ColumnQuery.sql"));

            case QueryEnum.RoutineSchemaQuery:
                return(ReadResource.Read("SourcePlugins.PostgreSQL.Resources.Queries.Queries.RoutineSchemaQuery.sql"));
            }
            return(null);
        }
示例#7
0
        public static string GetPrimaryQuerySql(this Type classType, QueryEnum queryEnum = QueryEnum.Equal)
        {
            var tempExp = " = ";

            if (queryEnum.Equals(QueryEnum.In))
            {
                tempExp = " in ";
            }
            var propsList = new List <string>();
            var ps        = classType.GetProperties();
            var tableName = classType.GetTableName();

            foreach (var i in ps)
            {
                var isKey = i.IsPrimaryKey();
                if (isKey)
                {
                    propsList.Insert(0, i.Name);
                }

                else
                {
                    var relId = i.GetRelId();
                    propsList.Add(!string.IsNullOrEmpty(relId) ? relId : i.Name);
                }
            }

            var sqlText = "select ";

            foreach (var props in propsList)
            {
                sqlText += props + ",";
            }
            sqlText = sqlText.Substring(0, sqlText.Length - 1);
            sqlText = sqlText + " from " + tableName;
            var exp = " where " + propsList[0] + " " + tempExp + " @" + propsList[0];

            return(sqlText + exp);
        }
示例#8
0
文件: Query.cs 项目: MrZh/Wan.Blog
 public Query(T obj, QueryEnum queryEnum = QueryEnum.Equal)
 {
     Sql = typeof(T).GetQuerySql(obj, queryEnum);
     Obj = obj;
 }
示例#9
0
文件: Query.cs 项目: MrZh/Wan.Blog
 public static BaseQuery InitPrimaryQuery(object obj, QueryEnum queryEnum = QueryEnum.Equal)
 {
     return(new BaseQuery(typeof(T).GetPrimaryQuerySql(queryEnum), obj));
 }
示例#10
0
文件: Query.cs 项目: MrZh/Wan.Blog
 public static BaseQuery InitQuery(T obj, QueryEnum queryEnum = QueryEnum.Equal)
 {
     return(new BaseQuery(typeof(T).GetQuerySql(obj, queryEnum), obj));
 }
示例#11
0
文件: Query.cs 项目: MrZh/Wan.Blog
 public Query(object obj, QueryEnum queryEnum = QueryEnum.Equal)
 {
     Sql = typeof(T).GetPrimaryQuerySql(queryEnum);
     Obj = obj;
 }
        private Series GetSeries(QueryEnum queryEnum, IndexEnum index, Random random, int times, DataEnum dataEnum)
        {
            var data = new List<object>();
            if (dataEnum == DataEnum.countries)
            {
                var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, DataSizeEnum.None, random), times);
                data.Add(speed);
            }
            else
            {
                foreach (var value in Enum.GetValues(typeof(DataSizeEnum)))
                {
                    if((DataSizeEnum)value == DataSizeEnum.None) continue;
                    var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, (DataSizeEnum)value, random), times);
                    if (speed.Equals(-1.0d))
                        break;
                    data.Add(speed);
                }
            }

            return new Series
                   {
                       Name = index.ToString(),
                       Data = new Data(data.ToArray())
                   };
        }