private async Task <bool> CommandAnswerToEoWAsync(IDialogContext context, Command command) { if (_currentUser == null) { await context.PostAsync("ユーザー登録されている人のみ使える機能です。"); return(false); } var usecase = new MainUsecase(_currentUser); var stateEntity = await usecase.GetCurrentUserStatus(); // 終業かを問い合わせ中なら、 // (y:終わった/n:終わってない/d:今日は徹夜)に応答する。 if ((stateEntity?.State ?? AskingState.None) == AskingState.AskingEoW) { // 聞かれた時刻で、終業時刻を更新 var eowDateTime = await usecase.PunchEoW(stateEntity); await context.PostAsync($"お疲れさまでした。{eowDateTime.ymd.FormatMd()} の" + $"終業時刻は {eowDateTime.hm.Format()} を記録しました。"); } else { await context.PostAsync($"今は仕事の終わりを聞いていません。終業時刻を記録するには タイムカードの編集 とタイプして下さい。"); } return(false); }
private async Task <bool> CommandPunchTodayIsOffAsync(IDialogContext context, Command command) { if (_currentUser == null) { await context.PostAsync("ユーザー登録されている人のみ使える機能です。"); return(false); } var usecase = new MainUsecase(_currentUser); var stateEntity = await usecase.GetCurrentUserStatus(); // 「今日は休み」と言われたら、 AskingEoW でなくともその日は休日にする if (_currentUser != null && stateEntity != null) { // 今日を休みに更新 await usecase.PunchTodayIsOff(stateEntity); var ymd = Yyyymmdd.Parse(stateEntity.TargetDate, _currentUser.TimeZoneId); await context.PostAsync($"今日はお休みなのですね、分かりました。" + $"今日({ymd.FormatMd()})はもう聞きません。よい休日をお過ごし下さい。"); } else { await context.PostAsync($"今は仕事の終わりを聞いていません。よい休日をお過ごし下さい。"); } return(false); }
private async Task <bool> CommandAnswerToDoNotAskTodayAsync(IDialogContext context, Command command) { if (_currentUser == null) { await context.PostAsync("ユーザー登録されている人のみ使える機能です。"); return(false); } var usecase = new MainUsecase(_currentUser); var stateEntity = await usecase.GetCurrentUserStatus(); // 終業かを問い合わせ中なら、 // (y:終わった/n:終わってない/d:今日は徹夜)に応答する。 if ((stateEntity?.State ?? AskingState.None) == AskingState.AskingEoW) { // 今日はもう聞かないにして更新 await usecase.PunchDoNotAskToday(stateEntity); var ymd = Yyyymmdd.Parse(stateEntity.TargetDate, _currentUser.TimeZoneId); await context.PostAsync($"分かりました。今日({ymd.FormatMd()})はもう聞きません。"); } else { await context.PostAsync($"今は仕事の終わりを聞いていません。"); } return(false); }