/// <summary>
        /// Get TemplateText name or null according to templateID
        /// </summary>
        /// <param name="templateId"></param>
        /// <returns></returns>
        public static string GetTemplateName(SqlTemplateId templateId)
        {
            SqlTemplate template;
            if (SqlTemplate.TryGetValue(templateId, out template))
            {
                return template.TemplateName;
            }
            else {
                MessageBox.Show($"ID={templateId}", @"Invalid templateID");
                return null;
            }

        }
      /// <summary>
      /// Get TemplateText (the template) or null according to templateID. 
      /// </summary>
      /// <param name="templateId"></param>
      /// <returns></returns>
      public static string GetTemplateText(SqlTemplateId templateId)
      {
          SqlTemplate template;
          if (SqlTemplate.TryGetValue(templateId, out template))
          {
              // get string from class or from resource
              if (template.IsResource)
              {
                  ResourceManager rm = new ResourceManager("hoTools.Utils.Resources.Strings", Assembly.GetExecutingAssembly());
                  return rm.GetString(template.TemplateText); 
              }  else return template.TemplateText;
          }
          else {
              MessageBox.Show($"ID={templateId}", @"Invalid templateID");
              return null;
          }
 
      }