public KanjiMessage GetKanjiForId(KanjiForIdRequest request)
 {
     var result = new KanjiMessage();
     using (IDatabaseClient client = OpenDatabaseClient()) {
         client.SelectCommand = String.Format(SQL_KANJI_ID_SELECT, request.Id.ToString());
         DataTable data = client.Read();
         if (data.Rows.Count > 0) {
             var row = data.Rows[0];
             result.Id = Convert.ToInt32(row["Id"]);
             result.Literal = row["Literal"].ToString();
             result.OnYomi = row["OnYomi"].ToString();
             result.KunYomi = row["KunYomi"].ToString();
             result.Meaning = row["Meaning"].ToString();
             result.Jlpt = (JLPT)Enum.Parse(typeof(JLPT), row["JLPT"].ToString());
             result.StrokeCount = Convert.ToInt32(row["StrokeCount"]);
         } else {
             result.Id = 0;
             result.Jlpt = JLPT.Undefined;
         }
     }
     return result;
 }
 public KanjiForIdResponse Execute(KanjiForIdRequest request)
 {
     return new KanjiForIdResponse() { Kanji = DataGateway.Instance.GetKanjiForId(request) };
 }