Пример #1
0
        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;
        }
Пример #2
0
        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);
        }