public List <EventResultModel> AnalyzeLoggedEvents(List <LogModel> loggedEvents) { List <EventResultModel> results = new List <EventResultModel>(); var startedEvents = loggedEvents.Where(x => x.State == "STARTED"); foreach (var eventLog in startedEvents) { EventResultModel resultModel = new EventResultModel(); resultModel.EventId = eventLog.Id; var finnishedEvent = loggedEvents.FirstOrDefault(x => x.Id == eventLog.Id && x.State == "FINISHED"); if (finnishedEvent != null) { Int64 duration = finnishedEvent.Timestamp - eventLog.Timestamp; results.Add(new EventResultModel { Alert = duration > 4 ? true : false, Duration = duration, EventId = eventLog.Id, Host = eventLog.Host, Type = eventLog.Type }); _logger.LogInformation("Event: {0} analyzed.", eventLog.Id); } } return(results); }
private object ResolveInvokeResult(EventResultModel result, Type t) { if (!result.HasResult) { return(default);
private T ResolveInvokeResult<T>(EventResultModel result) { if (!result.HasResult) { return default; } else { return JsonConverter.Deserialize<T>(result.Result); } }
public async Task <int> WriteArray(UserSession user, IEnumerable <T> value, IDbConnection conn = null, IDbTransaction trans = null) { Assembly assembly = null; if (!string.IsNullOrEmpty(GlobalConfiguration.IntegrationTemplate.ModelAssembly)) { var path = Path.Combine(Directory.GetCurrentDirectory(), "ExtensionFolder", GlobalConfiguration.IntegrationTemplate.ModelAssembly); assembly = Assembly.Load(File.ReadAllBytes(path)); } EventResultModel eventResultModel = null; if (conn != null && trans != null) { try { var model = GlobalConfiguration.IntegrationTemplate.ModelTemplates.FirstOrDefault(m => m.Name == typeof(T).Name); // run berore event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.BeforeEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } foreach (var item in value) { // run berore record event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.BeforeRowEvent, typeof(BaseEvent <T>), new object[] { this, item, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { continue; } string cmd = QueriesCreatingHelper.CreateQueryInsert(value); var rs = await DALHelper.Execute(cmd, dbTransaction : trans, connection : conn); // run after record event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.AfterRowEvent, typeof(BaseEvent <T>), new object[] { this, item, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { continue; } } // run after event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.AfterEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } return(0); } catch (Exception ex) { LogHelper.GetLogger().Error(ex.Message); return(-1); } } else { using (conn = DALHelper.GetConnection()) { conn.Open(); using (trans = conn.BeginTransaction()) { try { var model = GlobalConfiguration.IntegrationTemplate.ModelTemplates.FirstOrDefault(m => m.Name == typeof(T).Name); // run berore event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.BeforeEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } foreach (var item in value) { // run berore record event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.BeforeRowEvent, typeof(BaseEvent <T>), new object[] { this, item, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { continue; } string cmd = QueriesCreatingHelper.CreateQueryInsert(value); var rs = await DALHelper.Execute(cmd, dbTransaction : trans, connection : conn); // run after record event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.AfterRowEvent, typeof(BaseEvent <T>), new object[] { this, item, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { continue; } } // run after event eventResultModel = CommonHelper.RunEvent(assembly, model.Insert.AfterEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } trans.Commit(); return(0); } catch (Exception ex) { LogHelper.GetLogger().Error(ex.Message); try { trans.Rollback(); } catch { } return(-1); } finally { if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } } } } }
public async Task <int> Delete(UserSession user, T value, IDbConnection conn = null, IDbTransaction trans = null) { Assembly assembly = null; if (!string.IsNullOrEmpty(GlobalConfiguration.IntegrationTemplate.ModelAssembly)) { var path = Path.Combine(Directory.GetCurrentDirectory(), "ExtensionFolder", GlobalConfiguration.IntegrationTemplate.ModelAssembly); assembly = Assembly.Load(File.ReadAllBytes(path)); } EventResultModel eventResultModel = null; if (conn != null && trans != null) { try { var model = GlobalConfiguration.IntegrationTemplate.ModelTemplates.FirstOrDefault(m => m.Name == typeof(T).Name); // run berore record event eventResultModel = CommonHelper.RunEvent(assembly, model.Delete.BeforeRowEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } value.IsDeleted = true; string cmd = QueriesCreatingHelper.CreateQueryUpdate(value); var rs = await DALHelper.Execute(cmd, dbTransaction : trans, connection : conn); // run after record event eventResultModel = CommonHelper.RunEvent(assembly, model.Delete.AfterRowEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } return(rs == 1 ? 0 : -1); } catch (Exception ex) { LogHelper.GetLogger().Error(ex.Message); return(-1); } } else { try { var model = GlobalConfiguration.IntegrationTemplate.ModelTemplates.FirstOrDefault(m => m.Name == typeof(T).Name); // run berore record event eventResultModel = CommonHelper.RunEvent(assembly, model.Delete.BeforeRowEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } value.IsDeleted = true; string cmd = QueriesCreatingHelper.CreateQueryUpdate(value); var rs = await DALHelper.Execute(cmd); // run after record event eventResultModel = CommonHelper.RunEvent(assembly, model.Delete.AfterRowEvent, typeof(BaseEvent <T>), new object[] { this, value, conn, trans, user }); if (!eventResultModel.Result) { throw new Exception(eventResultModel.ErrorMessage); } if (!eventResultModel.IsBubble) { return(0); } return(rs == 1 ? 0 : -1); } catch (Exception ex) { LogHelper.GetLogger().Error(ex.Message); return(-1); } } }
private T ResolveInvokeResult <T>(EventResultModel result) { if (!result.HasResult) { return(default);
private T?ResolveInvokeResult <T>(EventResultModel result) { if (!result.HasResult || result.Result == null) { return(default);