private static void GetGridPagingQuery(GridOptions options, string query, string orderBy, string condition,
                                                   out StringBuilder gridQuery, out StringBuilder totalQuery)
            {
                //string sql = "SELECT * FROM " + tableName;
                // var _connection = new CommonConnection();
                try
                {
                    gridQuery  = new StringBuilder();
                    totalQuery = new StringBuilder();

                    query = query.Replace(';', ' ');

                    string strQuery = options != null
                        ? GridQueryBuilder <T> .Query(options, query, orderBy, condition)
                        : query;

                    if (!string.IsNullOrEmpty(condition))
                    {
                        condition = " WHERE " + condition;
                    }

                    var condition1 = options != null ? GridQueryBuilder <T> .FilterCondition(options.filter) : "";

                    if (!string.IsNullOrEmpty(condition1))
                    {
                        if (!string.IsNullOrEmpty(condition))
                        {
                            condition += " And " + condition1;
                        }
                        else
                        {
                            condition = " WHERE " + condition1;
                        }
                    }
                    string tQuery = "";

                    tQuery = "SELECT COUNT(*) FROM (" + query + " ) As tbl " + condition;


                    gridQuery.Append(strQuery);
                    totalQuery.Append(tQuery);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    //_connection.Close();
                }
            }
            public GridEntity <T> GenericDataSource(GridOptions options, string query, string orderBy,
                                                    string condition)
            {
                //  var _connection = new CommonConnection();
                StringBuilder gridQuery;
                StringBuilder totalQuery;

                GetGridPagingQuery(options, query, orderBy, condition, out gridQuery, out totalQuery);
                DataTable dataTable  = _connection.GetDataTable(gridQuery.ToString());
                int       totalCount = _connection.GetScaler(totalQuery.ToString());

                var dataList = (List <T>)GenericListGenerator.GetList <T>(dataTable);
                var result   = new GridResult <T>().Data(dataList, totalCount);

                return(result);
            }
 public GridEntity <T> GenericDataSource(GridOptions options, string query, string orderBy)
 {
     return(GenericDataSource(options, query, orderBy, ""));
 }
 public GridEntity <T> DataSourceWithDateQuary(GridOptions options, string query, string orderBy,
                                               string withQuary)
 {
     return(DataSourceWithDateQuary(options, query, orderBy, "", withQuary));
 }
            public GridEntity <T> DataSource(GridOptions options, string query, string orderBy, string condition)
            {
                //  var _connection = new CommonConnection();
                try
                {
                    query = query.Replace(';', ' ');
                    string orderby  = "";
                    string sqlQuery = query;
                    if (options != null)
                    {
                        if (options.pageSize > 0)
                        {
                            sqlQuery = GridQueryBuilder <T> .Query(options, query, orderBy, condition);
                        }
                        else
                        {
                            if (orderBy != "")
                            {
                                if (orderBy.ToLower().Contains("asc") || orderBy.ToLower().Contains("desc"))
                                {
                                    orderby = string.Format(" order by {0}", orderBy);
                                }
                                else
                                {
                                    orderby = string.Format(" order by {0} asc ", orderBy);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (orderBy != "")
                        {
                            if (orderBy.ToLower().Contains("asc") || orderBy.ToLower().Contains("desc"))
                            {
                                orderby = string.Format(" order by {0}", orderBy);
                            }
                            else
                            {
                                orderby = string.Format(" order by {0} asc ", orderBy);
                            }
                        }
                    }

                    if (!string.IsNullOrEmpty(condition))
                    {
                        condition = " WHERE " + condition;
                    }

                    var condition1 = "";
                    if (options != null)
                    {
                        if (options.filter != null)
                        {
                            condition1 = GridQueryBuilder <T> .FilterCondition(options.filter).Trim();
                        }
                    }
                    if (!string.IsNullOrEmpty(condition1))
                    {
                        if (!string.IsNullOrEmpty(condition))
                        {
                            condition += " And " + condition1;
                        }
                        else
                        {
                            condition = " WHERE " + condition1;
                        }
                    }
                    sqlQuery = "SELECT * FROM (" + sqlQuery + " ) As tbl " + condition;

                    DataTable dataTable = _connection.GetDataTable(sqlQuery + orderby);

                    String sqlCount = "";

                    sqlCount = "SELECT COUNT(*) FROM (" + query + " ) As tbl " + condition;


                    int totalCount = _connection.GetScaler(sqlCount);
                    var dataList   = (List <T>)ListConversion.ConvertTo <T>(dataTable);
                    var result     = new GridResult <T>().Data(dataList, totalCount);


                    return(result);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    _connection.Close();
                }
            }
            public DataSet GetDataSet(GridOptions options, string query, string orderBy)
            {
                //string sql = "SELECT * FROM " + tableName;
                DataSet gridDataSet = new DataSet();
                //  var _connection = new CommonConnection();
                string condition = "";

                try
                {
                    query = query.Replace(';', ' ');

                    string sqlQuery = options != null
                        ? GridQueryBuilder <T> .Query(options, query, orderBy, condition)
                        : query;

                    if (!string.IsNullOrEmpty(condition))
                    {
                        condition = " WHERE " + condition;
                    }

                    var condition1 = options != null ? GridQueryBuilder <T> .FilterCondition(options.filter) : "";

                    if (!string.IsNullOrEmpty(condition1))
                    {
                        if (!string.IsNullOrEmpty(condition))
                        {
                            condition += " And " + condition1;
                        }
                        else
                        {
                            condition = " WHERE " + condition1;
                        }
                    }

                    DataTable dataTable = _connection.GetDataTable(sqlQuery);
                    gridDataSet.Tables.Add(dataTable);
                    String sqlCount = "";

                    sqlCount = "SELECT COUNT(*) FROM (" + query + " ) As tbl " + condition;


                    int        totalCount   = _connection.GetScaler(sqlCount);
                    DataTable  totalCountDt = new DataTable("TotalCount");
                    DataColumn col          = new DataColumn("totalCount");
                    col.DataType = Type.GetType("System.Int32");
                    totalCountDt.Columns.Add(col);
                    DataRow dr = totalCountDt.NewRow();
                    dr["totalCount"] = totalCount;
                    totalCountDt.Rows.Add(dr);

                    //var dataList = (List<T>)ListConversion.ConvertTo<T>(dataTable);
                    //var result = new GridResult<T>().Data(dataList, totalCount);
                    gridDataSet.Tables.Add(totalCountDt);


                    return(gridDataSet);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    _connection.Close();
                }
            }
            public GridEntity <T> DataSourceWithDateQuary(GridOptions options, string query, string orderBy,
                                                          string condition, string withDateQuary)
            {
                //string sql = "SELECT * FROM " + tableName;
                //   var _connection = new CommonConnection();
                try
                {
                    query = query.Replace(';', ' ');

                    string sqlQuery = options != null
                        ? GridQueryBuilder <T> .Query(options, query, orderBy, condition)
                        : query;

                    if (!string.IsNullOrEmpty(condition))
                    {
                        condition = " WHERE " + condition;
                    }

                    var condition1 = options != null ? GridQueryBuilder <T> .FilterCondition(options.filter) : "";

                    if (!string.IsNullOrEmpty(condition1))
                    {
                        if (!string.IsNullOrEmpty(condition))
                        {
                            condition += " And " + condition1;
                        }
                        else
                        {
                            condition = " WHERE " + condition1;
                        }
                    }

                    if (withDateQuary != "")
                    {
                        sqlQuery = withDateQuary + sqlQuery;
                    }

                    DataTable dataTable = _connection.GetDataTable(sqlQuery);

                    String sqlCount = "";
                    //if (_connection.DatabaseType == DatabaseType.SQL)
                    //{
                    sqlCount = withDateQuary + " SELECT COUNT(*) FROM (" + query + " ) As tbl " + condition;
                    //}
                    //else if (_connection.DatabaseType == DatabaseType.Oracle)
                    //{
                    //    sqlCount = withDateQuary + " SELECT COUNT(*) FROM (" + query + " )" + condition;
                    //}

                    int totalCount = _connection.GetScaler(sqlCount);

                    var dataList = (List <T>)ListConversion.ConvertTo <T>(dataTable);
                    var result   = new GridResult <T>().Data(dataList, totalCount);


                    return(result);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    _connection.Close();
                }
            }
Exemple #8
0
        public static string Query(GridOptions options, string query, string orderBy, string gridCondition)
        {
            string condition = "";


            if (options != null)
            {
                condition = FilterCondition(options.filter).Trim();
            }

            if (!string.IsNullOrEmpty(condition))
            {
                condition = " WHERE " + condition;
            }


            if (!string.IsNullOrEmpty(gridCondition))
            {
                if (string.IsNullOrEmpty(condition))
                {
                    condition = " WHERE " + gridCondition;
                }
                else
                {
                    condition += " AND " + gridCondition;
                }
            }

            string orderby = "";

            if (options != null)
            {
                if (options.sort != null)
                {
                    foreach (var gridSort in options.sort)
                    {
                        if (orderby == "")
                        {
                            orderby += "ORDER by " + gridSort.field + " " + gridSort.dir;
                        }
                        else
                        {
                            orderby += " , " + gridSort.field + " " + gridSort.dir;
                        }
                    }
                }
            }

            if (orderby == "")
            {
                if (!String.IsNullOrEmpty(orderBy))
                {
                    orderby = " ORDER BY " + orderBy;
                }
                else
                {
                    throw new Exception("Must be set Orderby column Name");
                }
            }
            int pageupperBound = 0;
            int skip           = 0;

            if (options != null)
            {
                skip           = options.skip;
                pageupperBound = skip + options.take;
            }
            var sql =
                string.Format(
                    @"SELECT * FROM (SELECT ROW_NUMBER() OVER({4}) AS ROWINDEX, T.* FROM ({0}) T {2}) tbl WHERE ROWINDEX >{1} AND ROWINDEX <={3}",
                    query, skip, condition, pageupperBound, orderby);

            return(sql);
        }