context: namespace Votations.NSurvey.Data
  {
      using System;
      using System.Collections;
      using System.ComponentModel;
      using System.Data;
      using System.Diagnostics;
      using System.Globalization;
      using System.IO;
      using System.Reflection;
      using System.Runtime.CompilerServices;
      using System.Runtime.Serialization;
      using System.Xml;
      using System.Xml.Schema;
  
      [Serializable, DebuggerStepThrough, ToolboxItem(true), DesignerCategory("code")]
      public class MatrixChildQuestionData : DataSet
      {
          private DataRelation relationChildQuestionAnswers;
          private AnswersDataTable tableAnswers;
          private ChildQuestionsDataTable tableChildQuestions;
  
          public MatrixChildQuestionData()
          {
              this.InitClass();
              CollectionChangeEventHandler handler = new CollectionChangeEventHandler(this.SchemaChanged);
              base.Tables.CollectionChanged += handler;
              base.Relations.CollectionChanged += handler;
          }
  
          protected MatrixChildQuestionData(SerializationInfo info, StreamingContext context)
          {
              string s = (string) info.GetValue("XmlSchema", typeof(string));
              if (s != null)
              {
                  DataSet dataSet = new DataSet();
                  dataSet.ReadXmlSchema(new XmlTextReader(new StringReader(s)));
                  if (dataSet.Tables["ChildQuestions"] != null)
                  {
                      base.Tables.Add(new ChildQuestionsDataTable(dataSet.Tables["ChildQuestions"]));
                  }
                  if (dataSet.Tables["Answers"] != null)
                  {
                      base.Tables.Add(new AnswersDataTable(dataSet.Tables["Answers"]));
                  }
                  base.DataSetName = dataSet.DataSetName;
                  base.Prefix = dataSet.Prefix;
                  base.Namespace = dataSet.Namespace;
                  base.Locale = dataSet.Locale;
                  base.CaseSensitive = dataSet.CaseSensitive;
                  base.EnforceConstraints = dataSet.EnforceConstraints;
                  base.Merge(dataSet, false, MissingSchemaAction.Add);
                  this.InitVars();
              }
              else
              {
                  this.InitClass();
              }
              base.GetSerializationData(info, context);
              CollectionChangeEventHandler handler = new CollectionChangeEventHandler(this.SchemaChanged);
              base.Tables.CollectionChanged += handler;
              base.Relations.CollectionChanged += handler;
          }
  
          public override DataSet Clone()
          {
              MatrixChildQuestionData data = (MatrixChildQuestionData) base.Clone();
              data.InitVars();
              return data;
          }
  
          protected override XmlSchema GetSchemaSerializable()
          {
              MemoryStream w = new MemoryStream();
              base.WriteXmlSchema(new XmlTextWriter(w, null));
              w.Position = 0L;
              return XmlSchema.Read(new XmlTextReader(w), null);
          }
  
          private void InitClass()
          {
              base.DataSetName = "MatrixChildQuestionData";
              base.Prefix = "";
              base.Namespace = "http://tempuri.org/MatrixChildQuestionData.xsd";
              base.Locale = new CultureInfo("en-US");
              base.CaseSensitive = false;
              base.EnforceConstraints = true;
              this.tableChildQuestions = new ChildQuestionsDataTable();
              base.Tables.Add(this.tableChildQuestions);
              this.tableAnswers = new AnswersDataTable();
              base.Tables.Add(this.tableAnswers);
              ForeignKeyConstraint constraint = new ForeignKeyConstraint("ChildQuestionAnswers", new DataColumn[] { this.tableChildQuestions.QuestionIdColumn }, new DataColumn[] { this.tableAnswers.QuestionIdColumn });
              this.tableAnswers.Constraints.Add(constraint);
              constraint.AcceptRejectRule = AcceptRejectRule.None;
              constraint.DeleteRule = Rule.Cascade;
              constraint.UpdateRule = Rule.Cascade;
              this.relationChildQuestionAnswers = new DataRelation("ChildQuestionAnswers", new DataColumn[] { this.tableChildQuestions.QuestionIdColumn }, new DataColumn[] { this.tableAnswers.QuestionIdColumn }, false);
              base.Relations.Add(this.relationChildQuestionAnswers);
          }
  
          internal void InitVars()
          {
              this.tableChildQuestions = (ChildQuestionsDataTable) base.Tables["ChildQuestions"];
              if (this.tableChildQuestions != null)
              {
                  this.tableChildQuestions.InitVars();
              }
              this.tableAnswers = (AnswersDataTable) base.Tables["Answers"];
              if (this.tableAnswers != null)
              {
                  this.tableAnswers.InitVars();
              }
              this.relationChildQuestionAnswers = base.Relations["ChildQuestionAnswers"];
          }
  
          protected override void ReadXmlSerializable(XmlReader reader)
          {
              this.Reset();
              DataSet dataSet = new DataSet();
              dataSet.ReadXml(reader);
              if (dataSet.Tables["ChildQuestions"] != null)
              {
                  base.Tables.Add(new ChildQuestionsDataTable(dataSet.Tables["ChildQuestions"]));
              }
              if (dataSet.Tables["Answers"] != null)
              {
                  base.Tables.Add(new AnswersDataTable(dataSet.Tables["Answers"]));
              }
              base.DataSetName = dataSet.DataSetName;
              base.Prefix = dataSet.Prefix;
              base.Namespace = dataSet.Namespace;
              base.Locale = dataSet.Locale;
              base.CaseSensitive = dataSet.CaseSensitive;
              base.EnforceConstraints = dataSet.EnforceConstraints;
              base.Merge(dataSet, false, MissingSchemaAction.Add);
              this.InitVars();
          }
  
          private void SchemaChanged(object sender, CollectionChangeEventArgs e)
          {
              if (e.Action == CollectionChangeAction.Remove)
              {
                  this.InitVars();
              }
          }
  
          private bool ShouldSerializeAnswers()
          {
              return false;
          }
  
          private bool ShouldSerializeChildQuestions()
          {
              return false;
          }
  
          protected override bool ShouldSerializeRelations()
          {
              return false;
          }
  
          protected override bool ShouldSerializeTables()
          {
              return false;
          }
  
          [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
          public AnswersDataTable Answers
          {
              get
              {
                  return this.tableAnswers;
              }
          }
  
          [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false)]
          public ChildQuestionsDataTable ChildQuestions
          {
              get
              {
                  return this.tableChildQuestions;
              }
          }
  
          [DebuggerStepThrough]
          public class AnswersDataTable : DataTable, IEnumerable
          {
              private DataColumn columnAnswerId;
              private DataColumn columnAnswerText;
              private DataColumn columnDataSource;
              private DataColumn columnDefaultText;
              private DataColumn columnFieldHeight;
              private DataColumn columnFieldLength;
              private DataColumn columnFieldWidth;
              private DataColumn columnImageUrl;
              private DataColumn columnMandatory;
              private DataColumn columnQuestionId;
              private DataColumn columnSelected;
              private DataColumn columnTypeMode;
              private DataColumn columnUserSelected;
              private DataColumn columnUserText;
              private DataColumn columnVoteCount;
              private DataColumn columnXmlDatasource;
  
              public event MatrixChildQuestionData.AnswersRowChangeEventHandler AnswersRowChanged;
  
              public event MatrixChildQuestionData.AnswersRowChangeEventHandler AnswersRowChanging;
  
              public event MatrixChildQuestionData.AnswersRowChangeEventHandler AnswersRowDeleted;
  
              public event MatrixChildQuestionData.AnswersRowChangeEventHandler AnswersRowDeleting;
  
              internal AnswersDataTable() : base("Answers")
              {
                  this.InitClass();
              }
  
              internal AnswersDataTable(DataTable table) : base(table.TableName)
              {
                  if (table.CaseSensitive != table.DataSet.CaseSensitive)
                  {
                      base.CaseSensitive = table.CaseSensitive;
                  }
                  if (table.Locale.ToString() != table.DataSet.Locale.ToString())
                  {
                      base.Locale = table.Locale;
                  }
                  if (table.Namespace != table.DataSet.Namespace)
                  {
                      base.Namespace = table.Namespace;
                  }
                  base.Prefix = table.Prefix;
                  base.MinimumCapacity = table.MinimumCapacity;
                  base.DisplayExpression = table.DisplayExpression;
              }
  
              public void AddAnswersRow(MatrixChildQuestionData.AnswersRow row)
              {
                  base.Rows.Add(row);
              }
  
              public MatrixChildQuestionData.AnswersRow AddAnswersRow(MatrixChildQuestionData.ChildQuestionsRow parentChildQuestionsRowByChildQuestionAnswers, string AnswerText, string ImageUrl, int TypeMode, int FieldWidth, int FieldLength, int FieldHeight, int VoteCount, string XmlDatasource, bool Selected, string DefaultText, bool UserSelected, string UserText, string DataSource, bool Mandatory)
              {
                  MatrixChildQuestionData.AnswersRow row = (MatrixChildQuestionData.AnswersRow) base.NewRow();
                  object[] objArray = new object[0x10];
                  objArray[1] = parentChildQuestionsRowByChildQuestionAnswers[0];
                  objArray[2] = AnswerText;
                  objArray[3] = ImageUrl;
                  objArray[4] = TypeMode;
                  objArray[5] = FieldWidth;
                  objArray[6] = FieldLength;
                  objArray[7] = FieldHeight;
  
gt:                 objArray[8] = VoteCount;