コード例 #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
        private async Task ReceiveDownloadTimecardOrderAsync(IDialogContext context, IAwaitable <DownloadTimecardOrder> result)
        {
            try
            {
                var order   = await result;
                var usecase = new MainUsecase(_currentUser);
                var res     = await usecase.DumpTimecard(order.YearMonth);

                if (res.ym.IsEmpty)
                {
                    await context.PostAsync($"年月が正しくありません。YYYYMM もしくは今月、先月と指定して下さい。");
                }
                else if (string.IsNullOrEmpty(res.csv))
                {
                    await context.PostAsync($"{res.ym.Format()} のタイムカードはデータがありません。");
                }
                else
                {
                    await context.PostAsync($"{res.ym.Format()} のタイムカードです。");

                    await context.PostAsync(res.csv);
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine($"ReceiveDownloadTimecardOrderAsync failed - {ex.Message} - {ex.StackTrace}");
                await context.PostAsync($"中止しました。");
            }
        }