Exemplo n.º 1
0
        public string GetQueryParameterLinq(params IListParameter[] parameters)
        {
            var hasRowParams = WhereTerm.ResizeParameter(ref parameters, 1);

            if (!hasRowParams)
            {
                parameters[parameters.Length - 1] = WhereTerm.Parameter(0, DefaultValue.COLUMN_ROW_STATUS);
            }
            var query = new StringBuilder();

            ListValue = new Collection <object>();
            var indexpass = 0;

            foreach (var param in parameters)
            {
                var index = parameters.ToList().IndexOf(param) + indexpass;
                switch (param.ParamDataType)
                {
                case EnumParamterDataTypes.DateTime:
                {
                    var date1  = Convert.ToDateTime(param.GetValue());
                    var fdate  = new DateTime(date1.Year, date1.Month, date1.Day, 0, 0, 0);
                    var ldate  = new DateTime(date1.Year, date1.Month, date1.Day, 23, 59, 59);
                    var fparma = WhereTerm.Parameter(fdate, param.ColumnName, SqlOperator.GreatThanEqual);
                    var lparma = WhereTerm.Parameter(ldate, param.ColumnName, SqlOperator.LesThanEqual);
                    query.Append(GetValueParameterLinq(fparma, index) + DefaultValue.LOGICAL_SQL);
                    ListValue.Add(fparma.GetValue());
                    index++;
                    indexpass++;
                    query.Append(GetValueParameterLinq(lparma, index) + DefaultValue.LOGICAL_SQL);
                    ListValue.Add(lparma.GetValue());
                }
                break;

                case EnumParamterDataTypes.DateTimeRange:
                {
                    query.Append(GetValueParameterLinq(param, index) + DefaultValue.LOGICAL_SQL);
                    ListValue.Add(param.GetValue());
                    var date1 = Convert.ToDateTime(((IListRangeParameter)param).GetValue2());
                    //var ldate = new DateTime(date1.Year, date1.Month, date1.Day, 23, 59, 59);
                    ListValue.Add(date1);
                    indexpass++;
                }
                break;

                default:
                    query.Append(GetValueParameterLinq(param, index) + DefaultValue.LOGICAL_SQL);
                    ListValue.Add(param.GetValue());
                    break;
                }
            }
            if (query.Length != 0)
            {
                var qresult = query.ToString().Trim();
                if (qresult.Substring(qresult.Length - 3, 3) == DefaultValue.LOGICAL_SQL.Trim())
                {
                    qresult = qresult.Remove(qresult.Length - 3, 3);
                }
                return(qresult);
            }
            return(query.ToString());
        }