Ejemplo n.º 1
0
        /// <summary>
        /// Add all database query parameters.
        /// </summary>
        private void AddAllParameters(QuerySettings settings, QueryBuild result, IDatabaseContext context, IDbDataAdapter adapter)
        {
            IDbCommand selectCommand = adapter.SelectCommand;

            selectCommand.AddParameter(TenantParameterName, DatabaseType.IdentifierType, RequestContext.TenantId);
            if (result.DataReliesOnCurrentUser)
            {
                selectCommand.AddParameter(UserParameterName, DatabaseType.IdentifierType, settings.RunAsUser);
            }

            if (result.EntityBatchDataTable != null)
            {
                selectCommand.AddTableValuedParameter(EntityBatchParameterName, result.EntityBatchDataTable);
            }

            AddQuickSearchParameter(settings, selectCommand);
            AddFauxRelationshipParameters(settings, selectCommand);
            AddRootIdFilterParameter(settings, selectCommand);

            if (settings.ValueList != null)
            {
                selectCommand.AddStringListParameter("@valueList", settings.ValueList);
            }

            if (settings.SupportPaging)
            {
                SetPage(settings.FirstRow, settings.FirstRow + settings.PageSize, selectCommand);
            }

            if (result.SharedParameters != null)
            {
                foreach (KeyValuePair <ParameterValue, string> parameter in result.SharedParameters)
                {
                    selectCommand.AddParameter(parameter.Value, parameter.Key.Type, parameter.Key.Value);
                }
            }
        }