private void WriteRowClassProperties(StoredProcedureResultModel result)
        {
            int lastIndex = result.Columns.Count - 1;
            WriteBlockStart();
            {
                for (int i = 0; i < result.Columns.Count; i++)
                {
                    ColumnModel column = result.Columns[i];
                    Builder
                        .WriteIndentation()
                        .Write("public ")
                        .Write(column.ClrType.TypeName)
                        .Write(" ")
                        .Write(column.PropertyName)
                        .Write(" { get; set; }")
                        .WriteNewLine();

                    if(i != lastIndex)
                    {
                        Builder.WriteNewLine();
                    }
                }
            }
            WriteBlockEnd();
        }
        private void WriteExecuteMethodReadValues(StoredProcedureResultModel result)
        {
            foreach (var column in result.Columns)
            {

                Builder
                    .WriteIndentation()
                    .Write(column.PropertyName)
                    .Write(" = ")
                    .Write("GetValueOrDefault<")
                    .Write(column.ClrType.TypeName)
                    .Write(">(reader, \"")
                    .Write(column.DatabaseName)
                    .Write("\"),")
                    .WriteNewLine();
            }
        }
        private StoredProcedureResultModel GetResult(SqlDataReader reader)
        {
            DataTable table = reader.GetSchemaTable();

            if (table == null)
            {
                return null;
            }

            var model = new StoredProcedureResultModel();
            model.Columns = new List<ColumnModel>(table.Columns.Count);

            foreach (DataRow row in table.Rows)
            {
                var type = (Type)row["DataType"];
                var allowDbNull = (bool?)row["AllowDBNull"];
                model.Columns.Add(new ColumnModel
                {
                    DatabaseName = row["ColumnName"] as string,
                    ClrType = _typeConverter.ToClrType(type, allowDbNull == true)
                });
            }

            return model;
        }