Beispiel #1
0
        private void DiscoveryParametersForSearch(NpgsqlCommand command, SearchModuleInfo searchInfo, string queryFormat, SearchConditionInstance conditionIntance, List <SearchConditionInstance> staticConditionInstances)
        {
            //command.BindByName = true;

            var whereExtension = "1 = 1";

            if (!string.IsNullOrEmpty(searchInfo.WhereExtension))
            {
                whereExtension = BuildSearchExtension(searchInfo, conditionIntance);
            }

            BuildStaticConditions(searchInfo, command, staticConditionInstances);

            var whereCondition = "";// ModuleUtils.BuildSearchCondition(searchInfo, ref whereExtension, command, conditionIntance);

            if (string.IsNullOrEmpty(whereCondition))
            {
                whereCondition = "1 = 1";
            }

            command.CommandText = string.Format(queryFormat, whereCondition, whereExtension);
            if (searchInfo.ModuleID == STATICMODULE.UPFILE_MODID)
            {
                //command.CommandText = queryFormat + " and sessionskey = '" + Session.SessionKey + "'";
            }
        }
Beispiel #2
0
        private string BuildSearchExtension(SearchModuleInfo searchInfo, SearchConditionInstance conditionIntance)
        {
            var fields = FieldUtils.GetModuleFields(searchInfo.ModuleID);

            using (var conn = new NpgsqlConnection(ConnectionString))
            {
                using (var comm = new NpgsqlCommand(searchInfo.WhereExtension, conn))
                {
                    conn.Open();
                    comm.CommandType = CommandType.StoredProcedure;
                    PostgresqlHelper.DiscoveryParameters(comm);

                    foreach (var field in
                             fields.Where(field => field.WhereExtension == WebCore.CODES.DEFMODFLD.WHEREEXTENSION.YES))
                    {
                        comm.Parameters[field.FieldName].Value = DBNull.Value;
                        foreach (var condition in conditionIntance.SubCondition)
                        {
                            if (condition.ConditionID == field.FieldID && string.IsNullOrEmpty(condition.SQLLogic))
                            {
                                comm.Parameters[field.FieldName].Value = condition.Operator;
                            }
                        }
                    }
                    comm.ExecuteNonQuery();
                    return(comm.Parameters["RETURN_VALUE"].Value.ToString());
                }
            }
        }
Beispiel #3
0
 public static void SetAsLookUpWindow(this SearchModuleInfo obj, string columnValue)
 {
     obj.ShowAsLookUpWindow = true;
     obj.ColumnValue        = columnValue;
     obj.ColumnText         = null;
     obj.UIType             = WebCore.CODES.DEFMOD.UITYPE.POPUP;
     obj.ShowCheckBox       = WebCore.CODES.MODSEARCH.SHOWCHECKBOX.YES;
 }
Beispiel #4
0
        public void BuildStaticConditions(SearchModuleInfo searchInfo, NpgsqlCommand comm, List <SearchConditionInstance> staticConditionInstances)
        {
            var fields = FieldUtils.GetModuleFields(searchInfo.ModuleID, WebCore.CODES.DEFMODFLD.FLDGROUP.PARAMETER);

            if (fields == null || fields.Count == 0)
            {
                fields = PostgresqlHelper.ExecuteStoreProcedurePostgreSQL <ModuleFieldInfo>(ConnectionString, SYSTEM_STORE_PROCEDURES.LIST_FIELD_INFO_BY_MODID, searchInfo.ModuleID);
                if (AllCaches.ModuleFieldsInfo == null)
                {
                    AllCaches.ModuleFieldsInfo = new List <ModuleFieldInfo>();
                }
                AllCaches.ModuleFieldsInfo.AddRange(fields);
            }
            foreach (var field in fields)
            {
                switch (field.FieldName)
                {
                case CONSTANTS.ORACLE_SESSION_USER:
                    //comm.Parameters.Add(":" + field.ParameterName, Session.Username);
                    break;

                case CONSTANTS.ORACLE_CURSOR_OUTPUT:
                    //comm.Parameters.Add(new OracleParameter(":" + field.ParameterName, OracleDbType.RefCursor))
                    //    .Direction = ParameterDirection.Output;
                    break;
                }
            }
            var parameter = new NpgsqlParameter();

            fields = FieldUtils.GetModuleFields(searchInfo.ModuleID, WebCore.CODES.DEFMODFLD.FLDGROUP.SEARCH_CONDITION);
            foreach (var condition in staticConditionInstances)
            {
                foreach (var field in fields)
                {
                    if (field.FieldID == condition.ConditionID)
                    {
                        if (string.IsNullOrEmpty(condition.Value))
                        {
                            parameter.ParameterName = field.ParameterName;
                            parameter.NpgsqlDbType  = NpgsqlDbType.Text;
                            parameter.Value         = DBNull.Value;
                            comm.Parameters.Add(parameter);
                            //comm.Parameters.Add(":" + field.ParameterName, DBNull.Value);
                        }
                        else
                        {
                            parameter.ParameterName = ":" + field.ParameterName;
                            parameter.NpgsqlDbType  = NpgsqlDbType.Text;
                            parameter.Value         = condition.Value.Decode(field);
                            comm.Parameters.Add(parameter);
                            //comm.Parameters.Add(":" + field.ParameterName, condition.Value.Decode(field));
                        }
                    }
                }
            }
        }
Beispiel #5
0
 public ParramModuleQueryDynamicQuery()
 {
     LogicConditionModels = new List <LogicConditionModel>();
     SearchModuleInfo     = new SearchModuleInfo();
 }
Beispiel #6
0
 public SearchModSearch()
 {
     SearchInfo = new SearchModuleInfo();
     StaticConditionInstances = new List <SearchConditionInstance>();
     ModInfo = new ModuleInfo();
 }