using System.Net.Http.Json;
using WGShare.Domain.DTOs.AgoraCallback;
namespace WGShare.Domain.FriendlyException
{
///
/// 异常通知
///
public class ExceptionNotice
{
private static HttpClient httpClient = new HttpClient()
{
BaseAddress = new Uri("https://oapi.dingtalk.com/robot/send?access_token=6ddafcada8f44f4bad4a7314c4d9bd19a895ded0a1ba1afdaff5dd01a5af6781"),
};
///
/// 发送异常信息
///
/// 异常
/// 异常来源(用于显示)
///
public static async Task SendAsync(Exception exp, string expSrc)
{
#if DEBUG
Console.WriteLine("*************** Excpetion ***************");
Console.WriteLine(exp.Message, exp);
Console.WriteLine("*************** Excpetion ***************");
return true;
#endif
var reponse = await httpClient.PostAsync(string.Empty, JsonContent.Create(new
{
msgtype = "markdown",
markdown = new
{
title = "WGShare异常",
text = $"WGShare异常.描述:{exp.Message}\n详情:{exp}"
},
}));
return reponse.IsSuccessStatusCode;
}
public static async Task JoinAsync(EventBody eventBody)
{
// 获取当前的日期
DateTime today = DateTime.Today;
// 定义东八区的时区信息
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
// 创建东八区今天00:00:01的DateTime对象
DateTime startOfDayLocal = new DateTime(today.Year, today.Month, today.Day, 0, 0, 1, DateTimeKind.Unspecified);
// 创建东八区今天23:59:00的DateTime对象
DateTime endOfDayLocal = new DateTime(today.Year, today.Month, today.Day, 23, 59, 0, DateTimeKind.Unspecified);
// 将时间转换为UTC
DateTimeOffset startOfDayUtc = TimeZoneInfo.ConvertTimeToUtc(startOfDayLocal, timeZoneInfo);
DateTimeOffset endOfDayUtc = TimeZoneInfo.ConvertTimeToUtc(endOfDayLocal, timeZoneInfo);
// 获取Unix时间戳(秒)
long startTimestamp = startOfDayUtc.ToUnixTimeSeconds();
long endTimestamp = endOfDayUtc.ToUnixTimeSeconds();
var reponse = await httpClient.PostAsync(string.Empty, JsonContent.Create(new
{
msgtype = "markdown",
markdown = new
{
title = "有人入会通知",
text = $"有人进入会议室了,会议号:{eventBody.payload.channelName},点击查看:https://analytics-lab.agora.io/analytics/call/search?projectId=0tOpVUrmf&fromTs={startTimestamp}&toTs={endTimestamp}"
},
}));
}
}
}