Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 private object ResolveInvokeResult(EventResultModel result, Type t)
 {
     if (!result.HasResult)
     {
         return(default);
Exemplo n.º 3
0
 private T ResolveInvokeResult<T>(EventResultModel result)
 {
     if (!result.HasResult) { return default; }
     else { return JsonConverter.Deserialize<T>(result.Result); }
 }
Exemplo n.º 4
0
        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();
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        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);
                }
            }
        }
Exemplo n.º 6
0
 private T ResolveInvokeResult <T>(EventResultModel result)
 {
     if (!result.HasResult)
     {
         return(default);
Exemplo n.º 7
0
 private T?ResolveInvokeResult <T>(EventResultModel result)
 {
     if (!result.HasResult || result.Result == null)
     {
         return(default);