Beispiel #1
0
        protected override void OnAttached()
        {
            //Populate SqlConfig when the instance starts
            if (Debug != null)
            {
                SqlConfig.Debug = (bool)Debug;
            }
            SqlConfig.ApplicationName         = !string.IsNullOrEmpty(ApplicationName) ? ApplicationName : App.Title;
            SqlConfig.ApplicationPropertyName = !string.IsNullOrEmpty(ApplicationPropertyName) ? ApplicationPropertyName : "Application";
            Log.Debug("Debug logging: {Debug}", SqlConfig.Debug);
            if (SqlConfig.Debug)
            {
                Log.Debug("Application Property Name: {AppPropertyName}, App Name: {AppName}", SqlConfig.ApplicationPropertyName, SqlConfig.ApplicationName);
            }
            SqlConfig.QueryEverySeconds = QueryEverySeconds;
            if (SqlConfig.Debug)
            {
                Log.Debug("Query seconds: {QuerySeconds}", SqlConfig.QueryEverySeconds);
            }
            SqlConfig.ServerInstance = ServerInstance;
            if (SqlConfig.Debug)
            {
                Log.Debug("SQL Server instance: {SqlInstance}", SqlConfig.ServerInstance);
            }
            if (ConnectTimeout == null || ConnectTimeout < 1 || ConnectTimeout > 120)
            {
                ConnectTimeout = 15;
            }
            SqlConfig.ConnectTimeout = (int)ConnectTimeout;
            if (SqlConfig.Debug)
            {
                Log.Debug("SQL Connect Timeout: {ConnectTimeout}", SqlConfig.ConnectTimeout);
            }
            if (CommandTimeout == null || CommandTimeout < 1 || CommandTimeout > 300)
            {
                CommandTimeout = 60;
            }
            SqlConfig.CommandTimeout = (int)CommandTimeout;
            if (SqlConfig.Debug)
            {
                Log.Debug("SQL Query Timeout: {CommandTimeout}", SqlConfig.CommandTimeout);
            }
            if (Encrypt != null)
            {
                SqlConfig.Encrypt = (bool)Encrypt;
            }
            if (SqlConfig.Debug)
            {
                Log.Debug("Encrypted connection: {Encrypt}", SqlConfig.Encrypt);
            }
            if (TrustCertificate != null)
            {
                SqlConfig.TrustCertificate = (bool)TrustCertificate;
            }
            if (SqlConfig.Debug)
            {
                Log.Debug("Trust server certificate: {TrustCertificate}", SqlConfig.TrustCertificate);
            }
            SqlConfig.InitialCatalog = InitialCatalog;
            if (SqlConfig.Debug)
            {
                Log.Debug("Initial Catalog: {InitialCatalog}", SqlConfig.InitialCatalog);
            }
            SqlConfig.IntegratedSecurity = IntegratedSecurity;
            if (SqlConfig.Debug)
            {
                Log.Debug("Use integrated security: {IntegratedSecurity}", SqlConfig.IntegratedSecurity);
            }
            SqlConfig.DatabaseUsername = DatabaseUsername;
            SqlConfig.DatabasePassword = DatabasePassword;
            SqlConfig.TableOrViewName  = TableOrViewName;
            if (SqlConfig.Debug)
            {
                Log.Debug("Table or view to query: {TableOrView}", SqlConfig.TableOrViewName);
            }
            SqlConfig.AdditionalFilterClause = AdditionalFilterClause;
            if (SqlConfig.Debug)
            {
                Log.Debug("Additional filter: {Filter}", SqlConfig.AdditionalFilterClause);
            }
            SqlConfig.ColumnNameTimeStamp = ColumnNameTimeStamp;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Timestamp: {ColumnTimestamp}", SqlConfig.ColumnNameTimeStamp);
            }
            if (SecondsDelay == null || SecondsDelay < 1 || SecondsDelay > 86400)
            {
                SecondsDelay = 1;
            }
            SqlConfig.SecondsDelay = (int)SecondsDelay;
            if (SqlConfig.Debug)
            {
                Log.Debug("Seconds Delay Config: {SecondsDelay}, will delay query by {SecondsDelayActual}", SecondsDelay, SqlConfig.SecondsDelay);
            }
            SqlConfig.ColumnNameMessage = ColumnNameMessage;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Message: {ColumnMessage}", SqlConfig.ColumnNameMessage);
            }
            SqlConfig.ColumnNamesInclude = SqlConfig.SplitAndTrim(',', ColumnNamesInclude).ToList();
            if (SqlConfig.Debug)
            {
                Log.Debug("Columns to include: {ColumnNames}", SqlConfig.ColumnNamesInclude);
            }
            SqlConfig.ColumnNameEventLevel = ColumnNameEventLevel;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Event Level: {ColumnEventLevel}", ColumnNameEventLevel);
            }
            if (SqlConfig.ParseEventKeyPairList(EventLevelMapping, out var eventLevelMappings))
            {
                SqlConfig.EventLevelMapping = eventLevelMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Event level mappings: {LevelMappings}", SqlConfig.EventLevelMapping);
                }
            }

            SqlConfig.LogEventLevel = LogEventLevel;
            if (SqlConfig.Debug)
            {
                Log.Debug("Event level / Default event level: {EventLevel}", (LogEventLevel)SqlConfig.LogEventLevel);
            }
            SqlConfig.TimePeriod = TimePeriod;
            if (SqlConfig.Debug)
            {
                Log.Debug("Time Period: {TimePeriod}", SqlConfig.TimePeriod);
            }
            if (SqlConfig.IsKeyPairList(Tags) && SqlConfig.ParseKeyPairList(Tags, out var tagMappings))
            {
                SqlConfig.TagMappings = tagMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Tag mappings: {TagMappings}", SqlConfig.TagMappings);
                }
            }
            else if (SqlConfig.IsValue(Tags))
            {
                SqlConfig.Tags = SqlConfig.SplitAndTrim(',', Tags);
                if (SqlConfig.Debug)
                {
                    Log.Debug("Tags: {Tags}", SqlConfig.Tags);
                }
            }

            SqlConfig.ColumnNameTags = ColumnNameTags;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Tags: {ColumnTags}", SqlConfig.ColumnNameTags);
            }

            SqlConfig.ColumnNamePriority = ColumnNamePriority;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Priority: {ColumnPriority}", SqlConfig.ColumnNamePriority);
            }
            if (SqlConfig.ParseKeyPairList(PriorityMapping, out var priorityMappings))
            {
                SqlConfig.PriorityMapping = priorityMappings;
                Log.Debug("Priority Mappings: {PriorityMappings}", SqlConfig.PriorityMapping);
            }

            SqlConfig.ColumnNameResponder = ColumnNameResponder;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Responder: {ColumnResponder}", SqlConfig.ColumnNameResponder);
            }
            if (SqlConfig.ParseKeyPairList(ResponderMapping, out var responderMappings))
            {
                SqlConfig.ResponderMapping = responderMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Responder Mappings: {ResponderMappings}", SqlConfig.ResponderMapping);
                }
            }

            SqlConfig.ColumnNameProjectKey = ColumnNameProjectKey;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Project Key: {ColumnProjectKey}", SqlConfig.ColumnNameProjectKey);
            }
            if (SqlConfig.ParseKeyPairList(ProjectKeyMapping, out var projectKeyMappings))
            {
                SqlConfig.ProjectKeyMapping = projectKeyMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Project Key Mappings: {ProjectKeyMappings}", SqlConfig.ProjectKeyMapping);
                }
            }

            SqlConfig.ColumnNameInitialEstimate = ColumnNameInitialEstimate;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Initial Estimate: {ColumnInitialEstimate}", SqlConfig.ColumnNameInitialEstimate);
            }
            if (SqlConfig.ParseKeyPairList(InitialEstimateMapping, out var initialEstimateMappings))
            {
                SqlConfig.InitialEstimateMapping = initialEstimateMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Initial Estimate Mappings: {InitialEstimateMappings}", SqlConfig.InitialEstimateMapping);
                }
            }

            SqlConfig.ColumnNameRemainingEstimate = ColumnNameRemainingEstimate;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Remaining Estimate: {ColumnRemainingEstimate}", SqlConfig.ColumnNameRemainingEstimate);
            }
            if (SqlConfig.ParseKeyPairList(RemainingEstimateMapping, out var remainingEstimateMappings))
            {
                SqlConfig.RemainingEstimateMapping = remainingEstimateMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Remaining Estimate Mappings: {RemainingEstimateMappings}", SqlConfig.RemainingEstimateMapping);
                }
            }

            SqlConfig.ColumnNameDueDate = ColumnNameDueDate;
            if (SqlConfig.Debug)
            {
                Log.Debug("Column for Due Date: {ColumnDueDate}", SqlConfig.ColumnNameDueDate);
            }
            if (SqlConfig.ParseKeyPairList(DueDateMapping, out var dueDateMappings))
            {
                SqlConfig.DueDateMapping = dueDateMappings;
                if (SqlConfig.Debug)
                {
                    Log.Debug("Due Date Mappings: {DueDateMappings}", SqlConfig.DueDateMapping);
                }
            }
        }