Esempio n. 1
0
        public void WriteAndRead()
        {
            DateTime now = DateTime.Now;
            using (var book = new NoteBook())
            {
                book.AppendNote(now, "日付メモ 記録テスト サンプルデータです…。");
            }

            using (var book = new NoteBook())
            {
                var data = book.ActiveData;
                bool is_success = false;
                foreach (NoteBook.DateTimeNote note in data)
                {
                    // SQL Server Compact の datetime 型は精度が 3.33ミリ秒と中途半端なので、
                    // 秒単位で一致すれば ok とする。
                    if (now.ToString("yyyMMddHHmmss") != note.NoteDateTime.ToString("yyyMMddHHmmss"))
                        continue;

                    is_success = true;
                    break;
                }

                Assert.IsTrue(is_success, "直前に書き込んだはずの日時のメモが見つからない。");
            }
        }
 /// <summary>
 /// 反復子を取得するメソッド。
 /// </summary>
 /// <returns>DB 上の日時メモを NoteData に変換して順次返す反復子。</returns>
 /// <remarks>
 /// 詳しくは MSDN で IEnumerable を調べてみてくださいね。
 /// IEnumerable は foreach で回して値を順次取得もしくは生成するような
 /// オブジェクトを作りたい場合に実装するインタフェースですが、
 /// データグリッドなどのアイテムとしてデータバインドするのにも使えちゃう、らしいですよ。
 /// </remarks>
 public IEnumerator GetEnumerator()
 {
     using (var book = new NoteBook())
     {
         foreach (NoteBook.DateTimeNote note in book.ActiveData)
             yield return new NoteData(note);
     }
 }
 /// <summary>
 /// コンストラクタ。
 /// </summary>
 /// <param name="note">元になるモデルデータ。</param>
 public NoteData(NoteBook.DateTimeNote note)
 {
     dt_note = note;
 }
 /// <summary>
 /// 「書き込む」ボタン実行時処理。
 /// </summary>
 /// <param name="parameter">コマンドパラメータ。常に null。</param>
 /// <remarks>
 /// 入力された日時とメモを DB に書き込んだ後、 DB テーブルの新たな内容を
 /// 取得するためのデータオブジェクトを生成し直してデータグリッドに反映する
 /// ということをやっている、らしいですよ。
 /// </remarks>
 private void OnWrite(object parameter)
 {
     using (var book = new NoteBook())
     {
         book.AppendNote(NoteDateTime.DateTimeValue.Value, note_detail);
     }
     DateTimeNotes = new NoteListType();
 }