ibms-dome/Backend/Services/Implement/SendLineNotifyService.cs

55 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BackendWorkerService.Services.Interface;
using Microsoft. Extensions.Logging;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace BackendWorkerService.Services.Implement
{
class SendLineNotifyService: ISendLineNotifyService
{
private readonly ILogger<SendLineNotifyService> logger;
public SendLineNotifyService(ILogger<SendLineNotifyService> logger)
{
this.logger = logger;
}
public bool Send(int id, string lineToken, string message)
{
try
{
logger.LogInformation("【SendLineNotifyService】【Line Notify開始發送】[任務編號]{0}", id);
HttpWebRequest Postrequest = (HttpWebRequest)WebRequest.Create("https://notify-api.line.me/api/notify?message=" + message);
Postrequest.Method = "POST";
Postrequest.Headers.Add("Authorization", "Bearer " + lineToken);
Postrequest.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)Postrequest.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
var final = JObject.Parse(responseString);
var get = final["status"].ToString();
if (get != "200")
{
logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[任務編號]{0}", id);
logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[失敗內容]{0}", responseString);
return false;
}
logger.LogInformation("【SendLineNotifyService】【Line Notify發送成功】[任務編號]{0}", id);
return true;
}
catch (Exception exception)
{
logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[任務編號]{0}", id);
logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[Exception]{0}", exception.ToString());
throw;
//return false;
}
}
}
}