Example #1
0
        /// <summary>
        /// Builds the chunks.
        /// </summary>
        /// <returns></returns>
        public List <StatementBuilderResult> BuildChunks()
        {
            var chunks      = new List <StatementBuilderResult>();
            var combinedCmd = new StringBuilder();
            var parameters  = new DynamicParameters();

            for (var i = 0; i < Commands.Count; i++)
            {
                var nextCommand    = Commands[i].Statement.Replace("[@]", string.Format("@{0}_", i));
                var nextParamCount = Commands[i].ParameterList != null ? Commands[i].ParameterList.Count : 0;

                if (parameters.Count() + nextParamCount > 2000)
                {
                    chunks.Add(new StatementBuilderResult()
                    {
                        Statement = combinedCmd.ToString(), ParameterList = parameters
                    });
                    combinedCmd.Length = 0;
                    parameters         = new DynamicParameters();
                }

                combinedCmd.AppendLine(nextCommand);

                if (Commands[i].ParameterList != null)
                {
                    Commands[i].ParameterList.AddDynamicParametersById(parameters, i);
                }
            }

            chunks.Add(new StatementBuilderResult()
            {
                Statement = combinedCmd.ToString(), ParameterList = parameters
            });

            return(chunks);
        }