Пример #1
0
        private async Task <bool> CommandDownloadTimecardPreviousMonthAsync(IDialogContext context, Command command)
        {
            if (_currentUser == null)
            {
                await context.PostAsync("ユーザー登録されている人のみ使える機能です。");

                return(false);
            }

            // ユーザーのタイムゾーンでの現在時刻
            var tzUser    = TimeZoneInfo.FindSystemTimeZoneById(_currentUser.TimeZoneId);
            var nowUserTz = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzUser).AddMonths(-1); // 先月
            var ym        = Yyyymm.FromDate(nowUserTz.AddMonths(-1));

            var usecase = new MainUsecase(_currentUser);
            var dumped  = await usecase.DumpTimecard(ym);

            if (string.IsNullOrEmpty(dumped))
            {
                await context.PostAsync($"{ym.Format()}bのタイムカードはデータがありません。");
            }
            else
            {
                await context.PostAsync($"{ym.Format()} のタイムカードです。");

                await context.PostAsync(dumped);
            }

            return(false);
        }
Пример #2
0
        public async Task <(Yyyymm ym, string csv)> DumpTimecard(string yyyymm)
        {
            var ym = Yyyymm.Parse(yyyymm, _currentUser.TimeZoneId);

            if (ym.IsEmpty)
            {
                Trace.WriteLine($"DumpTimecard parse ym failed - {yyyymm}");
                return(ym, string.Empty);
            }
            var dumped = await DumpTimecard(ym);

            return(ym, dumped);
        }
Пример #3
0
        public async Task <string> DumpTimecard(Yyyymm ym)
        {
            var records = await _monthlyTimecardRepo.GetTimecardRecordByYearMonth(_currentUser.UserId, ym);

            if (records == null || records.Count == 0)
            {
                return(string.Empty);
            }

            var builder = new StringBuilder();

            builder.Append("日付, 終業時刻");
            builder.Append("\n\n");

            foreach (var rec in records)
            {
                builder.Append($"{rec.Day}, {rec.EoWTime}");
                builder.Append("\n\n");
            }

            return(builder.ToString());
        }
        public async Task <IList <TimecardRecord> > GetTimecardRecordByYearMonth(string userId, Yyyymm ym)
        {
            IList <TimecardRecord> timecardRecords = new List <TimecardRecord>();
            var monthlyTimecardEntity = await GetMonthlyTimecardsByYearMonth(userId, ym.Year, ym.Month);

            if (monthlyTimecardEntity != null)
            {
                timecardRecords = monthlyTimecardEntity.GetTimecardsAsList();
            }
            return(timecardRecords);
        }