LogicDataGenerator.MessageDslParser.GenMessageLoadAll C# (CSharp) Method

GenMessageLoadAll() private method

private GenMessageLoadAll ( MessageDef messageDef, TextWriter sw ) : void
messageDef MessageDef
sw System.IO.TextWriter
return void
        private void GenMessageLoadAll(MessageDef messageDef, TextWriter sw)
        {
            try {
            sw.WriteLine();
            sw.WriteLine("\t\tprivate static List<GeneralRecordData> LoadAll{0}(int start, int count)", messageDef.m_TypeName);
            sw.WriteLine("\t\t{");
            sw.WriteLine("\t\t\tList<GeneralRecordData> ret = new List<GeneralRecordData>();");
            sw.WriteLine("\t\t\ttry {");
            sw.WriteLine("\t\t\t  using (MySqlCommand cmd = new MySqlCommand()) {");
            sw.WriteLine("\t\t\t    cmd.Connection = DBConn.MySqlConn;");
            sw.WriteLine("\t\t\t    cmd.CommandType = CommandType.StoredProcedure;");
            sw.WriteLine("\t\t\t    cmd.CommandText = \"LoadAll{0}\";", messageDef.m_TypeName);

            sw.WriteLine("\t\t\t    MySqlParameter inputParam;");
            sw.WriteLine("\t\t\t    inputParam = new MySqlParameter(\"@_Start\", MySqlDbType.Int32);");
            sw.WriteLine("\t\t\t    inputParam.Direction = ParameterDirection.Input;");
            sw.WriteLine("\t\t\t    inputParam.Value = start;");
            sw.WriteLine("\t\t\t    cmd.Parameters.Add(inputParam);");
            sw.WriteLine("\t\t\t    inputParam = new MySqlParameter(\"@_Count\", MySqlDbType.Int32);");
            sw.WriteLine("\t\t\t    inputParam.Direction = ParameterDirection.Input;");
            sw.WriteLine("\t\t\t    inputParam.Value = count;");
            sw.WriteLine("\t\t\t    cmd.Parameters.Add(inputParam);");

            sw.WriteLine("\t\t\t    using (DbDataReader reader = cmd.ExecuteReader()) {");
            sw.WriteLine("\t\t\t      while (reader.Read()) {");
            sw.WriteLine("\t\t\t        GeneralRecordData record = new GeneralRecordData();");
            sw.WriteLine("\t\t\t        object val;");
            sw.WriteLine("\t\t\t        {0} msg = new {1}();", messageDef.m_TypeName, messageDef.m_TypeName);
            foreach (MemberDef memberDef in messageDef.m_Members) {
              sw.WriteLine("\t\t\t        val = reader[\"{0}\"];", memberDef.m_MemberName);
              sw.WriteLine("\t\t\t        msg.{0} = ({1})val;", memberDef.m_MemberName, GetMessageType(memberDef.m_TypeName));
              if (memberDef.m_IsPrimaryKey) {
            sw.WriteLine("\t\t\t        record.PrimaryKeys.Add(val.ToString());");
              } else if (memberDef.m_IsForeignKey) {
            sw.WriteLine("\t\t\t        record.ForeignKeys.Add(val.ToString());");
              }
            }
            sw.WriteLine("\t\t\t        record.DataVersion = (int)reader[\"DataVersion\"];");
            sw.WriteLine("\t\t\t        record.Data = DbDataSerializer.Encode(msg);");
            sw.WriteLine("\t\t\t        ret.Add(record);");
            sw.WriteLine("\t\t\t      }");
            sw.WriteLine("\t\t\t    }");
            sw.WriteLine("\t\t\t  }");
            sw.WriteLine("\t\t\t} catch (Exception ex) {");
            sw.WriteLine("\t\t\t  DBConn.Close();");
            sw.WriteLine("\t\t\t  throw ex;");
            sw.WriteLine("\t\t\t}");
            sw.WriteLine("\t\t\treturn ret;");

            sw.WriteLine("\t\t}");
            sw.WriteLine();
              } catch (Exception ex) {
            Console.WriteLine(ex);
              }
        }