public bool Publish <TEvent>(TEvent @event) where TEvent : class, IEventBase { var handlers = _eventHandlerFactory.GetHandlers <TEvent>(); if (handlers.Count > 0) { var handlerTasks = new Task[handlers.Count]; handlers.ForEach((handler, index) => { handlerTasks[index] = handler.Handle(@event).ContinueWith(r => { if (r.IsFaulted) { _logger.Error(r.Exception?.Unwrap(), $"handle event [{typeof(TEvent).FullName}] error, eventHandlerType:{handler.GetType().FullName}"); } }); }); _ = handlerTasks.WhenAll().ConfigureAwait(false); return(true); } return(false); }
/// <summary> /// 加密消息 /// </summary> /// <param name="msg">要加密的消息</param> /// <returns>加密后的消息</returns> public string EncryptMsg(string msg) { var encryptMsg = ""; var result = Wxcpt.EncryptMsg(msg, _timestamp, _nonce, ref encryptMsg); if (result != 0) { Logger.Error("微信消息加密失败,result:" + result); } return(encryptMsg); }
public bool Publish <TEvent>(TEvent @event) where TEvent : IEventBase { if (!_eventStore.HasSubscriptionsForEvent <TEvent>()) { return(false); } var handlers = _eventStore.GetEventHandlerTypes <TEvent>(); if (handlers.Count > 0) { var handlerTasks = new List <Task>(); foreach (var handlerType in handlers) { try { if (_serviceProvider.GetServiceOrCreateInstance(handlerType) is IEventHandler <TEvent> handler) { handlerTasks.Add(handler.Handle(@event)); } } catch (Exception ex) { Logger.Error(ex, $"handle event [{_eventStore.GetEventKey<TEvent>()}] error, eventHandlerType:{handlerType.FullName}"); } } handlerTasks.WhenAll().ConfigureAwait(false); return(true); } return(false); }
public static void MainTest() { Logger.Info("122334334"); Logger.Debug("12333"); Logger.Trace("122334334"); Logger.Warn("12333"); Logger.Error("122334334"); Logger.Fatal("12333"); }
public static void Test() { Logger.Info("info message"); Logger.Debug("debug message"); Logger.Trace("Trace message"); Logger.Error("Error messsage"); Logger.Fatal("Fatal message"); throw new ArgumentNullException(); }
public static void Test() { Logger.Info("info message"); Logger.Debug("debug message"); Logger.Trace("Trace message"); Logger.Error("Error messsage"); Logger.Fatal("Fatal message"); log4net.LogManager.GetLogger("testTtTLogger").Info("121313"); }
public static void MainTest() { var abc = "1233"; Logger.Info($"122334334 {abc}"); Logger.Debug($"12333 {abc}"); Logger.Trace("122334334"); Logger.Warn("12333"); Logger.Error("122334334"); Logger.Fatal("12333"); }
/// <summary> /// 获取机器人回复 /// </summary> /// <param name="request">请求</param> /// <returns>回复信息</returns> public static string GetBotReply(string request) { try { var response = HttpHelper.HttpGetString(String.Format(QingyunkeRequestUrlFormat, request)); if (!string.IsNullOrEmpty(response)) { var res = ConvertHelper.JsonToObject <QingyunkeResponseModel>(response); if (res != null && res.Result == 0) { return(res.Content); } } } catch (Exception ex) { Logger.Error(ex); } return("error"); }
public static async Task <string> ReturnMessageAsync(string postStr) { var responseContent = ""; try { var xmldoc = new XmlDocument(); xmldoc.LoadXml(postStr); var msgId = xmldoc.SelectSingleNode("/xml/MsgId")?.InnerText; if (msgId.IsNotNullOrEmpty()) { var limiter = RedisManager.GetRateLimiterClient($"wechatMsgRateLimiter-{msgId}", TimeSpan.FromSeconds(20)); if (!await limiter.AcquireAsync()) { Logger.Info($"duplicate msg blocked, msg id: {msgId}"); return(string.Empty); } } var msgType = xmldoc.SelectSingleNode("/xml/MsgType"); if (msgType != null) { switch (msgType.InnerText) { case "event": responseContent = EventHandle(xmldoc); //事件处理 break; case "text": responseContent = await TextMsgHandleAsync(xmldoc); //接受文本消息处理 break; case "image": responseContent = ImageMsgHandle(xmldoc); //图片消息 break; case "voice": responseContent = await VoiceMsgHandleAsync(xmldoc); //语音消息 break; default: break; } } } catch (Exception ex) { Logger.Error(ex, "回复消息发生异常,异常信息:" + ex.Message); } return(responseContent); }
public static void Test() { LogHelper.ConfigureLogging(builder => builder.AddLog4Net()); Logger.Info("info message"); Logger.Debug("debug message"); Logger.Trace("Trace message"); Logger.Error("Error messsage"); Logger.Fatal("Fatal message"); log4net.LogManager.GetLogger("testTtTLogger").Info("121313"); }
public static string ReturnMessage(string postStr) { var responseContent = ""; try { var xmldoc = new XmlDocument(); xmldoc.LoadXml(postStr); var msgId = xmldoc.SelectSingleNode("/xml/MsgId")?.InnerText; if (msgId.IsNullOrEmpty()) { var firewall = RedisManager.GetFirewallClient($"wechatMsgFirewall-{msgId}", TimeSpan.FromSeconds(2)); if (!firewall.Hit()) { return(string.Empty); } } var msgType = xmldoc.SelectSingleNode("/xml/MsgType"); if (msgType != null) { switch (msgType.InnerText) { case "event": responseContent = EventHandle(xmldoc); //事件处理 break; case "text": responseContent = TextMsgHandle(xmldoc); //接受文本消息处理 break; case "image": responseContent = ImageMsgHandle(xmldoc); //图片消息 break; case "voice": responseContent = VoiceMsgHandleAsync(xmldoc); //语音消息 break; default: break; } } } catch (Exception ex) { Logger.Error("发生异常,异常信息:" + ex.Message + ex.StackTrace); } return(responseContent); }
public static void MainTest() { var abc = "1233"; LogHelper.LogFactory.WithMinimumLevel(LogHelperLevel.Info); Logger.Debug($"12333 {abc}"); Logger.Trace("122334334"); Logger.Info($"122334334 {abc}"); Logger.Warn("12333"); Logger.Error("122334334"); Logger.Fatal("12333"); }
public static void StorageProcusureTest() { using (var conn = new SqlConnection(ConfigurationHelper.ConnectionString("TestDb"))) { //var result = conn.Execute("TestSP", CommandType.StoredProcedure, new { aaa = 123, bbb = "12333" }); //var dataTable = conn.ExecuteDataTable("SELECT * FROM TestTable"); try { conn.Execute(@"INSERT INTO [dbo].[TestTable] ( [Token], [CreatedTime] ) VALUES (@Item1, --Token - nvarchar(200) @Item2-- CreatedTime - datetime )", GetValueTupleParam()); } catch (NotSupportedException ex) { Logger.Error(ex); } //conn.Execute(@"INSERT INTO [dbo].[TestTable] // ( // [Token], // [CreatedTime] // ) // VALUES // (@Token, --Token - nvarchar(200) // @CreatedTime-- CreatedTime - datetime // )", new TestStruct //{ // Token = Guid.NewGuid().ToString("N")+" execute-struct", // CreatedTime = DateTime.Now //}); var i = conn.ExecuteDataTable("SELECT * FROM TestTable").Rows.Count; } }
public void OnAuthorization(AuthorizationFilterContext filterContext) { var model = new WechatMsgRequestModel { Nonce = filterContext.HttpContext.Request.Query["nonce"].FirstOrDefault(), Signature = filterContext.HttpContext.Request.Query["signature"].FirstOrDefault(), Timestamp = filterContext.HttpContext.Request.Query["timestamp"].FirstOrDefault(), Msg_Signature = filterContext.HttpContext.Request.Query["msg_signature"].FirstOrDefault() }; //验证 if (!CheckSignature(model)) { Logger.Error("微信请求签名验证不通过"); filterContext.Result = new ContentResult { Content = "微信请求验证失败", StatusCode = 401, ContentType = "text/html" }; } }
public static void MainTest() { var abc = "1233"; LogHelper.ConfigureLogging(builder => { builder .AddLog4Net() //.AddSerilog(loggerConfig => loggerConfig.WriteTo.Console()) .WithMinimumLevel(LogHelperLogLevel.Info) .WithFilter((category, level) => level > LogHelperLogLevel.Error && category.StartsWith("System")) .EnrichWithProperty("Entry0", ApplicationHelper.ApplicationName) .EnrichWithProperty("Entry1", ApplicationHelper.ApplicationName, e => e.LogLevel >= LogHelperLogLevel.Error) ; }); Logger.Debug("12333 {abc}", abc); Logger.Trace("122334334"); Logger.Info($"122334334 {abc}"); Logger.Warn("12333, err:{err}", "hahaha"); Logger.Error("122334334"); Logger.Fatal("12333"); }