public static DataTable PopulateDataWithReturn(string storedProcedureName, Dictionary <string, object> inputParameter)
        {
            DataSet           dataSet = new DataSet();
            OracleDataAdapter adapter = new OracleDataAdapter();
            OracleCommand     command = new OracleCommand();


            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = storedProcedureName;
            command.Connection  = DatabaseUtility.OpenConnection();


            adapter.SelectCommand = command;

            foreach (KeyValuePair <string, object> items in inputParameter)
            {
                OracleParameter parameter = new OracleParameter(items.Key, items.Value == null ? DBNull.Value : items.Value);
                //  parameter.OracleDbType = OracleDbType.Varchar2;
                parameter.Direction = ParameterDirection.Input;
                command.Parameters.Add(parameter);
            }
            OracleParameter parameter1 = new OracleParameter();

            parameter1.OracleDbType = OracleDbType.RefCursor;
            parameter1.Direction    = ParameterDirection.Output;
            command.Parameters.Add(parameter1);


            command.CommandTimeout = 0;

            adapter.Fill(dataSet);
            //SqlDataReader dataReader = command.ExecuteReader();
            DatabaseUtility.closeConnection(command.Connection);
            return(dataSet.Tables[0]); //dataReader;
        }
        public static int PopulateData(string storedProcedureName, Dictionary <string, object> inputParameter, Dictionary <string, object> outputParameter, Dictionary <string, object> outputParameterValues)
        {
            OracleCommand command = new OracleCommand();

            command.CommandText    = storedProcedureName;
            command.CommandType    = CommandType.StoredProcedure;
            command.Connection     = DatabaseUtility.OpenConnection();
            command.CommandTimeout = 0;



            foreach (KeyValuePair <string, object> items in inputParameter)
            {
                OracleParameter parameter = new OracleParameter(items.Key, items.Value);
                parameter.Direction = ParameterDirection.Input;
                command.Parameters.Add(parameter);
            }


            foreach (KeyValuePair <string, object> items in outputParameter)
            {
                ArrayList       parameterItem = (ArrayList)items.Value;
                OracleParameter parameter     = new OracleParameter(items.Key, (OracleDbType)parameterItem[0], (int)parameterItem[1]);
                parameter.Direction = ParameterDirection.Output;
                command.Parameters.Add(parameter);
            }


            int noOfRecord = command.ExecuteNonQuery();

            DatabaseUtility.closeConnection(command.Connection);

            foreach (OracleParameter parameter in command.Parameters)
            {
                if (parameter.Direction == ParameterDirection.Output)
                {
                    outputParameterValues.Add(parameter.ParameterName, parameter.Value);
                }
            }


            return(noOfRecord);
        }