0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

家庭内の定期的なタスクについてもWunderlistで管理したい(その2)

Posted at

〇まったく役に立たない回答が返ってきた。

前回問い合わせてみた件についての回答が返ってきた。
家庭内の定期的なタスクについてもWunderlistで管理したい(その1)@調査

<回答>
私たちに手を差し伸べていただきありがとうございます。
期限は可能ですが、時間がないので、我々は、ユーザーが彼が電子メールを送信するときにどこにあるかわからないので、時間帯は異なります。
私は私の答えがあなたを助けることを望む。あなたのサポートに感謝し、私たちは良い一日をお祈りしています!

Thank you for reaching out to us.
The due date is possible but time is not, since we are not sure where the user is when he sends the email, thus the time zone is different.
I hope my answer helps you. Thank you for your support and we wish you a good day!

日本語と英語の両方が記載されているのは親切だなとは思ったけど、回答としては何一つ役に立たなかった。

〇前回まで

家庭内の定期的なタスクについてもWunderlistで管理したい(その1)
→メール送信による登録を調査

〇今回の概要

・設定した期間に合わせて、自動で送信する処理を作成
※最終的には画面で設定できるようにする予定だが、
まずはファイルに対して直接書き込んだものをWunderListに設定する部分だけを作ってしまう。

〇バックエンド処理

・DBを用意するのがめんどくさいのでファイル読み書きにする。
・1タスクごとにJsonのレコードを作って、設定情報を読み書きする。
・タスクごとにタスク登録日かを判定して、登録対象の場合はメール送信で登録。
 送信した場合は次回タスク登録日を更新

データ項目としては以下を持たせてみる

・タスク名
・担当名
・タスクとタスクの間隔
・期限とタスク登録の間隔
・次回期限日
・前回期限日
・次回タスク登録日

・とりあえずサンプルとしていくつかのパターンを設定。
これで思った通りに送信されるかちょっと様子を見てみる。
※本当はこのタイミングでしっかり試験をすればいいんだろうけど、プライベートだとテストをしっかりやるのがめんどくさいので試してダメなら直していく方向で。
隔週、毎週、隔日あたりが思った通りにタスク登録されればたぶん大丈夫でしょ。
2~3日動かしてみた感じだとあってそうな感じ。

ざっくり書くとこんなイメージ

var list = GetTaskData();
var now = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd"));

// 通知処理
var UpdateFlg = false;
foreach (var TaskData in list)
{
    if (now <= TaskData.NextNoticeDateTime && TaskData.NextNoticeDateTime <= now.AddDays(TaskData.NoticeToLimit))
    {
        //登録する
        SendMail.Send(TaskData.TaskName + " #" +TaskData.Person+ " " + TaskData.NextLimitDateTime.ToString("yyyy年MM月dd日"));

        //データ更新
        TaskData.LastLimitDateTime = TaskData.NextLimitDateTime;
        TaskData.LastLimitDate = TaskData.LastLimitDateTime.ToString("yyyy/MM/dd");
        TaskData.SetNextDate();

        UpdateFlg = true;
    }
}
if (UpdateFlg)
{
    //一件も更新しなかったときは保存しない
    Write(list);
}

もちっときれいに書けそうだが、リファクタリングするのもめんどくさいのでこのままにしておく。

〇次回以降

・あとはこれらの設定を簡単に登録/更新できる方法を考える。
→たぶんWebAppを作ることになるかな。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?