コード例 #1
0
        public static async Task AddTask(string name, string code, string userName, ILogger log)
        {
            log.LogInformation($"start adding task process");

            var payload = new IncomingWebhookPayload {
            };

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(code) || string.IsNullOrEmpty(userName))
            {
                payload.Text = $"タスク挿入に失敗しました. name={name}, code={code}, userName={userName}";
                await SendIncomingWebhook(payload);
            }

            var task = new OutlookTask
            {
                PartitionKey  = userName,
                RowKey        = code,
                Name          = name,
                IsCurrentTask = false
            };

            var result = await TableHelper.InsertTask(task);

            payload.Text = result
            ? $"タスク挿入に成功しました. task={JsonConvert.SerializeObject(task)}"
            : $"タスク挿入に失敗しました. task={JsonConvert.SerializeObject(task)}";

            await SendIncomingWebhook(payload);
        }
コード例 #2
0
        private static async Task SendIncomingWebhook(IncomingWebhookPayload payload)
        {
            HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, incomingWebhookUrl);

            req.Content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json");
            await httpClient.SendAsync(req);
        }
コード例 #3
0
        public static async Task ConfirmTask(string userName, ILogger log)
        {
            log.LogInformation($"start confirming task process");

            var payload = new IncomingWebhookPayload {
            };

            if (string.IsNullOrEmpty(userName))
            {
                payload.Text = $"現在のタスク取得に失敗しました。 userName={userName}";
                await SendIncomingWebhook(payload);
            }

            var result = await TableHelper.GetUserCurrentTasks(userName);

            if (result == null || result.Count <= 0)
            {
                payload.Text = "現在のタスクが存在しません.";
            }
            else
            {
                var firstTaskJson = JsonConvert.SerializeObject(result[0]);
                payload.Text = $"現在のタスク: {firstTaskJson} ";
            }

            await SendIncomingWebhook(payload);
        }
コード例 #4
0
        public static async Task ListTasks(string userName, ILogger log)
        {
            log.LogInformation($"start listing task process");

            var payload = new IncomingWebhookPayload {
            };

            if (string.IsNullOrEmpty(userName))
            {
                payload.Text = $"一覧取得に失敗しました。 userName={userName}";
                await SendIncomingWebhook(payload);
            }

            var result = await TableHelper.GetAllUserTasks(userName);

            if (result == null || result.Count <= 0)
            {
                payload.Text = "一覧するタスクが存在しません.";
            }
            else
            {
                var tasksStr = "";

                foreach (var t in result)
                {
                    tasksStr += $"Name={t.Name} Code={t.RowKey} \n";
                }

                payload.Text = "Tasks: \n " + tasksStr;
            }
            await SendIncomingWebhook(payload);
        }
コード例 #5
0
        public static async Task SetTask(string userName, string code, ILogger log)
        {
            log.LogInformation($"start setting task process");

            var payload = new IncomingWebhookPayload {
            };

            if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(code))
            {
                payload.Text = $"現在のタスク設定に失敗しました。 userName={userName} code={code}";
                await SendIncomingWebhook(payload);
            }

            var result = await TableHelper.UpdateUserCurrentTask(userName, code);

            payload.Text = result == null
            ? $"現在のタスク設定に失敗しました."
            : $"現在のタスク設定に成功しました. task={JsonConvert.SerializeObject(result)}";
            await SendIncomingWebhook(payload);
        }