public async Task PunchEoW(Yyyymmdd ymd, Hhmm hm) { // 指定された日付の終業時刻を、指定された時刻で更新する var monthlyTimecardRepo = new MonthlyTimecardRepository(); await monthlyTimecardRepo.UpsertTimecardRecord(_currentUser.UserId, ymd, hm); // 当日ならもう聞かないようにステータスを打刻済みに更新 var stateEntity = await _conversationStateRepo.GetStatusByUserId(_currentUser.UserId); var targetYmd = Yyyymmdd.Parse(stateEntity.TargetDate, _currentUser.TimeZoneId); if (stateEntity != null && ymd.Equals(targetYmd)) { stateEntity.State = AskingState.Punched; await _conversationStateRepo.UpsertState(stateEntity); } return; }
PunchEoW(ConversationStateEntity stateEntity) { var hhmm = Hhmm.Parse(stateEntity.TargetTime); // 該当日のタイムカードの終業時刻を更新 var ymd = Yyyymmdd.Parse(stateEntity.TargetDate, _currentUser.TimeZoneId); if (ymd.isEmpty || hhmm.IsEmpty) { Trace.WriteLine($"PunchEoW parse ymd, hhmm failed - {ymd}, {hhmm}"); return(ymd, hhmm); } var monthlyTimecardRepo = new MonthlyTimecardRepository(); await monthlyTimecardRepo.UpsertTimecardRecord(_currentUser.UserId, ymd, hhmm); // 打刻済みにして更新 stateEntity.State = AskingState.Punched; await _conversationStateRepo.UpsertState(stateEntity); return(ymd, hhmm); }