Example #1
0
        private void AddChildStatements(IComplexCommandBuilder parentBuilder, EntityInfo entityInfo, IFilter filter)
        {
            foreach (var childInfo in entityInfo.Children)
            {
                var childBuilder = new ComplexCommandBuilder(childInfo.Name, childInfo.Type);
                childBuilder.AddStatement(new SelectStatement(childInfo, filter));
                foreach (var parameter in filter.Parameters)
                {
                    childBuilder.AddParameter(parameter);
                    //logger.Debug("  parameter name=" + parameter.Name + "value=" + parameter.Value.ToString());
                }

                parentBuilder.AddChild(childBuilder);

                AddChildStatements(childBuilder, childInfo, filter);
            }

            foreach (var valueInfo in entityInfo.Values)
            {
                var valueBuilder = new ComplexCommandBuilder(valueInfo.Name, valueInfo.Type);
                valueBuilder.AddStatement(new SelectStatement(valueInfo, filter));
                foreach (var parameter in filter.Parameters)
                {
                    valueBuilder.AddParameter(parameter);
                    //logger.Debug("  parameter name=" + parameter.Name + "value=" + parameter.Value.ToString());
                }

                parentBuilder.AddChild(valueBuilder);
            }
        }
        private void AddChildStatements(IComplexCommandBuilder parentBuilder, EntityInfo entityInfo)
        {
            foreach (var childInfo in entityInfo.Children)
            {
                var childBuilder = new ComplexCommandBuilder(childInfo.Name, childInfo.Type);
                childBuilder.AddStatement(new SelectStatement(childInfo, rootName, rootIdAlias));

                parentBuilder.AddChild(childBuilder);

                AddChildStatements(childBuilder, childInfo);
            }

            foreach (var valueInfo in entityInfo.Values)
            {
                var valueBuilder = new ComplexCommandBuilder(valueInfo.Name, valueInfo.Type);
                valueBuilder.AddStatement(new SelectStatement(valueInfo, rootName, rootIdAlias));

                parentBuilder.AddChild(valueBuilder);
            }
        }