public KanjiMessage GetKanjiForToday(KanjiForTodayRequest request)
 {
     var result = new KanjiMessage();
     using (IDatabaseClient client = OpenDatabaseClient()) {
         client.SelectCommand = String.Format(SQL_KANJI_JLPT_SELECT, GetJlptString(request.JlptLevels));
         DataTable data = client.Read();
         if (data.Rows.Count > 0) {
             int rowNumber = (DateTime.Today.Year * 365 + DateTime.Today.DayOfYear) % data.Rows.Count;
             var row = data.Rows[rowNumber];
             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"]);
         }
     }
     return result;
 }
 public KanjiForTodayResponse Execute(KanjiForTodayRequest request)
 {
     var kanjiRequest = new KanjiForTodayRequest() { JlptLevels = request.JlptLevels };
     return new KanjiForTodayResponse() { Kanji = DataGateway.Instance.GetKanjiForToday(kanjiRequest) };
 }