diff --git a/DB/ElmahSetup.sql b/DB/ElmahSetup.sql new file mode 100644 index 0000000..ca3f311 --- /dev/null +++ b/DB/ElmahSetup.sql @@ -0,0 +1,292 @@ +/* + + Copyright 2004 Atif Aziz. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +-- ELMAH DDL script for Microsoft SQL Server 2000 or later. + +-- $Id: SQLServer.sql 776 2011-01-12 21:09:24Z azizatif $ + +DECLARE @DBCompatibilityLevel INT +DECLARE @DBCompatibilityLevelMajor INT +DECLARE @DBCompatibilityLevelMinor INT + +SELECT + @DBCompatibilityLevel = cmptlevel +FROM + master.dbo.sysdatabases +WHERE + name = DB_NAME() + +IF @DBCompatibilityLevel <> 90 +BEGIN + + SELECT @DBCompatibilityLevelMajor = @DBCompatibilityLevel / 10, + @DBCompatibilityLevelMinor = @DBCompatibilityLevel % 10 + + PRINT N' + =========================================================================== + WARNING! + --------------------------------------------------------------------------- + + This script is designed for Microsoft SQL Server 2005 (9.0) but your + database is set up for compatibility with version ' + + CAST(@DBCompatibilityLevelMajor AS NVARCHAR(80)) + + N'.' + + CAST(@DBCompatibilityLevelMinor AS NVARCHAR(80)) + + N'. Although + the script should work with later versions of Microsoft SQL Server, + you can ensure compatibility by executing the following statement: + + ALTER DATABASE [' + + DB_NAME() + + N'] + SET COMPATIBILITY_LEVEL = 90 + + If you are hosting ELMAH in the same database as your application + database and do not wish to change the compatibility option then you + should create a separate database to host ELMAH where you can set the + compatibility level more freely. + + If you continue with the current setup, please report any compatibility + issues you encounter over at: + + http://code.google.com/p/elmah/issues/list + + =========================================================================== +' +END +GO + +/* ------------------------------------------------------------------------ + TABLES + ------------------------------------------------------------------------ */ + +CREATE TABLE [dbo].[ELMAH_Error] +( + [ErrorId] UNIQUEIDENTIFIER NOT NULL, + [Application] NVARCHAR(60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Host] NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Type] NVARCHAR(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Source] NVARCHAR(60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Message] NVARCHAR(500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [User] NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [StatusCode] INT NOT NULL, + [TimeUtc] DATETIME NOT NULL, + [Sequence] INT IDENTITY (1, 1) NOT NULL, + [AllXml] NVARCHAR(MAX) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL +) +ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] + +GO + +ALTER TABLE [dbo].[ELMAH_Error] WITH NOCHECK ADD + CONSTRAINT [PK_ELMAH_Error] PRIMARY KEY NONCLUSTERED ([ErrorId]) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[ELMAH_Error] ADD + CONSTRAINT [DF_ELMAH_Error_ErrorId] DEFAULT (NEWID()) FOR [ErrorId] +GO + +CREATE NONCLUSTERED INDEX [IX_ELMAH_Error_App_Time_Seq] ON [dbo].[ELMAH_Error] +( + [Application] ASC, + [TimeUtc] DESC, + [Sequence] DESC +) +ON [PRIMARY] +GO + +/* ------------------------------------------------------------------------ + STORED PROCEDURES + ------------------------------------------------------------------------ */ + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + +CREATE PROCEDURE [dbo].[ELMAH_GetErrorXml] +( + @Application NVARCHAR(60), + @ErrorId UNIQUEIDENTIFIER +) +AS + + SET NOCOUNT ON + + SELECT + [AllXml] + FROM + [ELMAH_Error] + WHERE + [ErrorId] = @ErrorId + AND + [Application] = @Application + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + +CREATE PROCEDURE [dbo].[ELMAH_GetErrorsXml] +( + @Application NVARCHAR(60), + @PageIndex INT = 0, + @PageSize INT = 15, + @TotalCount INT OUTPUT +) +AS + + SET NOCOUNT ON + + DECLARE @FirstTimeUTC DATETIME + DECLARE @FirstSequence INT + DECLARE @StartRow INT + DECLARE @StartRowIndex INT + + SELECT + @TotalCount = COUNT(1) + FROM + [ELMAH_Error] + WHERE + [Application] = @Application + + -- Get the ID of the first error for the requested page + + SET @StartRowIndex = @PageIndex * @PageSize + 1 + + IF @StartRowIndex <= @TotalCount + BEGIN + + SET ROWCOUNT @StartRowIndex + + SELECT + @FirstTimeUTC = [TimeUtc], + @FirstSequence = [Sequence] + FROM + [ELMAH_Error] + WHERE + [Application] = @Application + ORDER BY + [TimeUtc] DESC, + [Sequence] DESC + + END + ELSE + BEGIN + + SET @PageSize = 0 + + END + + -- Now set the row count to the requested page size and get + -- all records below it for the pertaining application. + + SET ROWCOUNT @PageSize + + SELECT + errorId = [ErrorId], + application = [Application], + host = [Host], + type = [Type], + source = [Source], + message = [Message], + [user] = [User], + statusCode = [StatusCode], + time = CONVERT(VARCHAR(50), [TimeUtc], 126) + 'Z' + FROM + [ELMAH_Error] error + WHERE + [Application] = @Application + AND + [TimeUtc] <= @FirstTimeUTC + AND + [Sequence] <= @FirstSequence + ORDER BY + [TimeUtc] DESC, + [Sequence] DESC + FOR + XML AUTO + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +SET ANSI_NULLS ON +GO + +CREATE PROCEDURE [dbo].[ELMAH_LogError] +( + @ErrorId UNIQUEIDENTIFIER, + @Application NVARCHAR(60), + @Host NVARCHAR(30), + @Type NVARCHAR(100), + @Source NVARCHAR(60), + @Message NVARCHAR(500), + @User NVARCHAR(50), + @AllXml NVARCHAR(MAX), + @StatusCode INT, + @TimeUtc DATETIME +) +AS + + SET NOCOUNT ON + + INSERT + INTO + [ELMAH_Error] + ( + [ErrorId], + [Application], + [Host], + [Type], + [Source], + [Message], + [User], + [AllXml], + [StatusCode], + [TimeUtc] + ) + VALUES + ( + @ErrorId, + @Application, + @Host, + @Type, + @Source, + @Message, + @User, + @AllXml, + @StatusCode, + @TimeUtc + ) + +GO +SET QUOTED_IDENTIFIER OFF +GO +SET ANSI_NULLS ON +GO diff --git a/Jenkinsfile b/Jenkinsfile index 69930dd..516ded9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,7 +11,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=344']) { + withEnv(['NEXT_BUILD_NUMBER=345']) { // env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.versionNumberBeta = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') diff --git a/NKC_WF.sln b/NKC_WF.sln index 466bd7d..a65f827 100644 --- a/NKC_WF.sln +++ b/NKC_WF.sln @@ -14,6 +14,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AF976E24-B296-403D-BCDA-6574E7B2F1DC}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig + DB\ElmahSetup.sql = DB\ElmahSetup.sql DB\SqlDataCompare_Vocab.dcmp = DB\SqlDataCompare_Vocab.dcmp DB\SqlSchemaCompare_All.scmp = DB\SqlSchemaCompare_All.scmp EndProjectSection diff --git a/NKC_WF/Web.config b/NKC_WF/Web.config index 04fae77..26bbeb7 100644 --- a/NKC_WF/Web.config +++ b/NKC_WF/Web.config @@ -93,11 +93,10 @@ + -