LogicDataGenerator.MessageDslParser.GenMessageSave C# (CSharp) Method

GenMessageSave() private method

private GenMessageSave ( MessageDef messageDef, TextWriter sw ) : void
messageDef MessageDef
sw System.IO.TextWriter
return void
        private void GenMessageSave(MessageDef messageDef, TextWriter sw)
        {
            try {
            sw.WriteLine();
            sw.WriteLine("\t\tprivate static void Save{0}(bool isValid, int dataVersion, byte[] data)", messageDef.m_TypeName);
            sw.WriteLine("\t\t{");
            sw.WriteLine("\t\t\tobject _msg;");
            sw.WriteLine("\t\t\tif(DbDataSerializer.Decode(data, typeof({0}), out _msg)){{", messageDef.m_TypeName);
            sw.WriteLine("\t\t\t\t{0} msg = _msg as {1};", messageDef.m_TypeName, messageDef.m_TypeName);

            sw.WriteLine("\t\t\t\ttry {");
            sw.WriteLine("\t\t\t\t  using (MySqlCommand cmd = new MySqlCommand()) {");
            sw.WriteLine("\t\t\t\t    cmd.Connection = DBConn.MySqlConn;");
            sw.WriteLine("\t\t\t\t    cmd.CommandType = CommandType.StoredProcedure;");
            sw.WriteLine("\t\t\t\t    cmd.CommandText = \"Save{0}\";",messageDef.m_TypeName);
            sw.WriteLine("\t\t\t\t    MySqlParameter inputParam;");
            sw.WriteLine("\t\t\t\t    inputParam = new MySqlParameter(\"@_IsValid\", MySqlDbType.Bit);");
            sw.WriteLine("\t\t\t\t    inputParam.Direction = ParameterDirection.Input;");
            sw.WriteLine("\t\t\t\t    inputParam.Value = isValid;");
            sw.WriteLine("\t\t\t\t    cmd.Parameters.Add(inputParam);");
            sw.WriteLine("\t\t\t\t    inputParam = new MySqlParameter(\"@_DataVersion\", MySqlDbType.Int32);");
            sw.WriteLine("\t\t\t\t    inputParam.Direction = ParameterDirection.Input;");
            sw.WriteLine("\t\t\t\t    inputParam.Value = dataVersion;");
            sw.WriteLine("\t\t\t\t    cmd.Parameters.Add(inputParam);");
            foreach (MemberDef memberDef in messageDef.m_Members) {
              string mysqlClientType = GetMySqlClientType(memberDef.m_TypeName);
              sw.WriteLine("\t\t\t\t    inputParam = new MySqlParameter(\"@_{0}\", {1});", memberDef.m_MemberName, mysqlClientType);
              sw.WriteLine("\t\t\t\t    inputParam.Direction = ParameterDirection.Input;");
              sw.WriteLine("\t\t\t\t    inputParam.Value = msg.{0};", memberDef.m_MemberName);
              string sqlType = GetSqlType(memberDef.m_TypeName);
              if (0 == sqlType.CompareTo("varchar")) {
            int size;
            if (memberDef.m_MaxSize > 0) {
              size = memberDef.m_MaxSize;
            } else {
              size = m_DefVarcharSize;
            }
            sw.WriteLine("\t\t\t\t    inputParam.Size = {0};", size);
              }
              sw.WriteLine("\t\t\t\t    cmd.Parameters.Add(inputParam);");
            }
            sw.WriteLine("\t\t\t\t    cmd.ExecuteNonQuery();");
            sw.WriteLine("\t\t\t\t  }");
            sw.WriteLine("\t\t\t\t} catch (Exception ex) {");
            sw.WriteLine("\t\t\t\t  DBConn.Close();");
            sw.WriteLine("\t\t\t\t  throw ex;");
            sw.WriteLine("\t\t\t\t}");

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