|
@@ -21,7 +21,10 @@ using System.Data.SqlClient;
|
|
|
using System.Diagnostics;
|
|
|
using System.Globalization;
|
|
|
using System.Linq;
|
|
|
+using System.Net.Http;
|
|
|
+using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
+using System.Web;
|
|
|
|
|
|
namespace EVCB_OCPP.WSServer.Message
|
|
|
{
|
|
@@ -284,6 +287,7 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
|
|
|
if (_request.status == Packet.Messages.SubTypes.ChargePointStatus.Faulted)
|
|
|
{
|
|
|
+ var smsAlertConfig = new SMSAlertConfig();
|
|
|
var businessService = BusinessServiceFactory.CreateBusinessService(session.CustomerId.ToString());
|
|
|
var notification = businessService.NotifyFaultStatus(new ErrorDetails()
|
|
|
{
|
|
@@ -295,6 +299,40 @@ namespace EVCB_OCPP.WSServer.Message
|
|
|
VendorErrorCode = string.IsNullOrEmpty(_request.vendorErrorCode) ? string.Empty : _request.vendorErrorCode,
|
|
|
|
|
|
});
|
|
|
+
|
|
|
+
|
|
|
+ using (SqlConnection conn = new SqlConnection(webConnectionString))
|
|
|
+ {
|
|
|
+
|
|
|
+ string sql = " SELECT EnableSMS, PhoneNumber as PhoneNumbers,Alarm_code as Alarm_codes FROM [SMSAlertList]";
|
|
|
+ var smsResult = await conn.QueryAsync<SMSAlertConfig>(sql);
|
|
|
+ smsAlertConfig = smsResult.FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (smsAlertConfig != null && smsAlertConfig.EnableSMS)
|
|
|
+ {
|
|
|
+ var alarmConds = smsAlertConfig.Alarm_codes.Split(',').ToList();
|
|
|
+ if (!string.IsNullOrEmpty(_request.vendorErrorCode) && alarmConds.Contains(_request.vendorErrorCode))
|
|
|
+ {
|
|
|
+ List<string> sendlist = smsAlertConfig.PhoneNumbers.Split(',').ToList();
|
|
|
+ foreach (var phonenumber in sendlist)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(phonenumber)) continue;
|
|
|
+
|
|
|
+ string message = string.Format("[告警-{0}]\r\n{1} -{2}\r\n時間:{3}\r\n", _request.vendorErrorCode, session.ChargeBoxId,
|
|
|
+ _request.connectorId, DateTime.UtcNow.AddHours(8).ToString("yyyy/MM/dd HH:mm:ss"));
|
|
|
+ string errorMsg = string.Empty;
|
|
|
+ HttpClient client = new HttpClient();
|
|
|
+ string request_url = string.Format("https://api2.kotsms.com.tw/kotsmsapi-1.php?username={0}&password={1}&dstaddr={2}&smbody={3}",
|
|
|
+ GlobalConfig.SMS_Account, GlobalConfig.SMS_Password, phonenumber, HttpUtility.UrlEncode(message,Encoding.Default));
|
|
|
+
|
|
|
+ await client.GetAsync(request_url);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
var confirm = new StatusNotificationConfirmation() { };
|