Refactor Citrix virtual session data collection
This commit is contained in:
@@ -680,49 +680,49 @@
|
||||
|
||||
SELECT @cnt
|
||||
</Query>
|
||||
<Query Name="UpdateDbTablesV1.9">
|
||||
DECLARE @cnt INT
|
||||
SET @cnt = 0
|
||||
<Query Name="UpdateDbTablesV1.9">
|
||||
DECLARE @cnt INT
|
||||
SET @cnt = 0
|
||||
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[main-user]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'main-user' AND Column_Name = 'id_citrix')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [id_citrix] to table [main-user] ...';
|
||||
ALTER Table [main-user] ADD [id_citrix] int NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[main-user]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'main-user' AND Column_Name = 'id_citrix')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [id_citrix] to table [main-user] ...';
|
||||
ALTER Table [main-user] ADD [id_citrix] int NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[main-user]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'main-user' AND Column_Name = 'tenant_citrix')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [tenant_citrix] to table [main-user] ...';
|
||||
ALTER Table [main-user] ADD [tenant_citrix] nvarchar(100) NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[main-user]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'main-user' AND Column_Name = 'tenant_citrix')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [tenant_citrix] to table [main-user] ...';
|
||||
ALTER Table [main-user] ADD [tenant_citrix] nvarchar(100) NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[QActions]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'QActions' AND Column_Name = 'TimeStamp')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [TimeStamp] to table [QActions] ...';
|
||||
ALTER Table [QActions] ADD [TimeStamp] Datetime NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[QActions]') AND type in (N'U'))
|
||||
AND NOT EXISTS (SELECT * FROM Information_Schema.Columns WHERE Table_Name = 'QActions' AND Column_Name = 'TimeStamp')
|
||||
BEGIN
|
||||
PRINT N'Start adding column [TimeStamp] to table [QActions] ...';
|
||||
ALTER Table [QActions] ADD [TimeStamp] Datetime NULL;
|
||||
SET @cnt = @cnt + 1;
|
||||
PRINT N'... done.'
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_main-user_upn_external')
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_main-user_upn_external')
|
||||
BEGIN
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_main-user_upn_external] ON [main-user] ([upn_external] ASC);
|
||||
CREATE NONCLUSTERED INDEX [IX_main-user_upn_external] ON [main-user] ([upn_external] ASC);
|
||||
|
||||
SET @cnt = @cnt+1;
|
||||
PRINT N'... done.'
|
||||
SET @cnt = @cnt+1;
|
||||
PRINT N'... done.'
|
||||
|
||||
END
|
||||
END
|
||||
|
||||
SELECT @cnt
|
||||
</Query>
|
||||
SELECT @cnt
|
||||
</Query>
|
||||
<!--<Query Name="UpdateDbTablesV1.10"/> used in the past and removed-->
|
||||
<Query Name="UpdateDbTablesV1.11">
|
||||
DECLARE @cnt INT
|
||||
@@ -943,12 +943,12 @@
|
||||
</Query>
|
||||
<Query Name="UpdateComputerAzure">
|
||||
UPDATE [main-computer] SET [id_azure]=@id, [deviceid_azure]=@deviceid, tenant_azure = @tenant WHERE [sid_bin]=@sid_bin
|
||||
</Query>
|
||||
</Query>
|
||||
<Query Name="UpdateComputerIntune">
|
||||
UPDATE [main-computer] SET [id_intune]=@id WHERE [deviceId_azure]=@deviceId
|
||||
</Query>
|
||||
<Query Name="UpdateComputerIntune2">
|
||||
UPDATE [main-computer] SET [id_intune]=@id, [deviceid_azure]=@deviceid, tenant_azure = @tenant WHERE upn_internal = @upn_internal and [domainNB] is null
|
||||
<Query Name="UpdateComputerIntune2">
|
||||
UPDATE [main-computer] SET [id_intune]=@id, [deviceid_azure]=@deviceid, tenant_azure = @tenant WHERE upn_internal = @upn_internal and [domainNB] is null
|
||||
</Query>
|
||||
<Query Name="GetUserBySidOrUpn">
|
||||
DECLARE @ID UNIQUEIDENTIFIER
|
||||
@@ -967,8 +967,8 @@
|
||||
<Query Name="UpdateUserCitrix">
|
||||
UPDATE [main-user] SET [id_citrix]=@id WHERE [sid_bin]=@sid_bin
|
||||
</Query>
|
||||
<Query Name="UpdateUserCitrix2">
|
||||
UPDATE [main-user] SET [id_citrix]=@id WHERE upn_internal = @upn_internal AND [id_citrix] is null
|
||||
<Query Name="UpdateUserCitrix2">
|
||||
UPDATE [main-user] SET [id_citrix]=@id WHERE upn_internal = @upn_internal AND [id_citrix] is null
|
||||
</Query>
|
||||
<Query Name="UpdateMainUserAgent">
|
||||
UPDATE [main-user] SET [id_agent]=@id_agent WHERE [sid_bin]=@sid_bin AND ([id_agent] is null OR [id_agent] != @id_agent)
|
||||
@@ -1011,11 +1011,11 @@
|
||||
SELECT [id] FROM [main-user] WHERE [account] like @account AND ([domainNB] like @domain OR [domainDns] like @domain)
|
||||
</Query>
|
||||
<Query Name="GetConnectorIdsFromComputerId">
|
||||
SELECT [sid_bin], [id_agent], [Name], [last_seen_by_agent], NULL , [tenant_azure],[id_intune], [deviceId_azure],null,null FROM [main-computer] WHERE id = @id
|
||||
</Query>
|
||||
SELECT [sid_bin], [id_agent], [Name], [last_seen_by_agent], NULL , [tenant_azure],[id_intune], [deviceId_azure],null,null FROM [main-computer] WHERE id = @id
|
||||
</Query>
|
||||
<Query Name="GetConnectorIdsFromUserId">
|
||||
SELECT [sid_bin], [id_agent], [account], [last_seen_by_agent], [id_agent_azure], [tenant_azure], [id_azure],null,[id_citrix],[tenant_citrix] FROM [main-user] WHERE id = @id
|
||||
</Query>
|
||||
SELECT [sid_bin], [id_agent], [account], [last_seen_by_agent], [id_agent_azure], [tenant_azure], [id_azure],null,[id_citrix],[tenant_citrix] FROM [main-user] WHERE id = @id
|
||||
</Query>
|
||||
<Query Name="GetUserInfoFromAgentId">
|
||||
SELECT [id], [full_name], [is_active], [account], COALESCE([domainDns], [domainNB] ), CASE WHEN [id_agent] <> @id THEN 1 ELSE 0 END FROM [main-user] WHERE [id_agent] = @id OR [id_agent_azure] = @id
|
||||
</Query>
|
||||
@@ -1675,22 +1675,22 @@
|
||||
|
||||
PRINT N' ...done.';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Tickets]') AND type in (N'U'))
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Tickets]') AND type in (N'U'))
|
||||
BEGIN
|
||||
PRINT N'start creating table [Tickets]...';
|
||||
|
||||
CREATE TABLE [Tickets](
|
||||
[TicketId] [uniqueidentifier] NOT NULL,
|
||||
[Status] [nvarchar](16) NOT NULL,
|
||||
[Start] [datetime] NULL,
|
||||
[Finish] [datetime] NULL,
|
||||
[ActiveTime] [int] NULL,
|
||||
[UserId] [uniqueidentifier] NOT NULL,
|
||||
[CaseId] [uniqueidentifier] NOT NULL
|
||||
)
|
||||
CREATE TABLE [Tickets](
|
||||
[TicketId] [uniqueidentifier] NOT NULL,
|
||||
[Status] [nvarchar](16) NOT NULL,
|
||||
[Start] [datetime] NULL,
|
||||
[Finish] [datetime] NULL,
|
||||
[ActiveTime] [int] NULL,
|
||||
[UserId] [uniqueidentifier] NOT NULL,
|
||||
[CaseId] [uniqueidentifier] NOT NULL
|
||||
)
|
||||
|
||||
PRINT N' ...done.';
|
||||
PRINT N' ...done.';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[QActions]') AND type in (N'U'))
|
||||
@@ -1831,20 +1831,20 @@
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_UserSession_SessionId] ON [UserSessions]
|
||||
([SessionId] ASC) INCLUDE([UserId]) WITH (DROP_EXISTING = OFF) ON [PRIMARY];
|
||||
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_Cases_CaseId] ON [Cases]
|
||||
([CaseId] ASC) INCLUDE(SessionId) WITH (DROP_EXISTING = OFF) ON [PRIMARY];
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_CaseTime_CaseId] ON [CaseTime]
|
||||
([CaseId] ASC) INCLUDE(StatusId) WITH (DROP_EXISTING = OFF) ON [PRIMARY];
|
||||
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_QActionExecutions_ExecutionId_CaseId] ON [QActionExecutions]
|
||||
([ExecutionId],[CaseId] ASC) WITH (DROP_EXISTING = OFF) ON [PRIMARY];
|
||||
|
||||
|
||||
CREATE NONCLUSTERED INDEX [IX_Tickets_TicketId_CaseId] ON [dbo].[Cases]
|
||||
([TicketId] ASC, [CaseId] ASC) WITH (DROP_EXISTING = OFF) ON [PRIMARY];
|
||||
|
||||
|
||||
END
|
||||
</Query>
|
||||
<Query Name="Update_F4SDAnalyticsMainTables">
|
||||
@@ -1886,8 +1886,8 @@
|
||||
SET @cnt = @cnt+1;
|
||||
PRINT N'... done.'
|
||||
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT 1 FROM sys.objects WHERE name = 'FK_Cases_SessionId' AND type='F')
|
||||
BEGIN
|
||||
ALTER TABLE Cases DROP CONSTRAINT FK_Cases_SessionId
|
||||
@@ -2460,67 +2460,67 @@
|
||||
</Query>
|
||||
<Query Name="CloseUserSession">
|
||||
|
||||
IF EXISTS (SELECT TOP 1 * FROM UserSessions WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
UPDATE [UserSessions]
|
||||
SET [Finish] = @SessionDate
|
||||
WHERE SessionId = @SessionId;
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT TOP 1 * FROM UserSessions WHERE SessionId = @SessionId) AND EXISTS (SELECT TOP 1 * FROM dbo.Cases WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
DECLARE @CurrentTimeStamp DATETIME = GETUTCDATE();
|
||||
INSERT INTO UserSessions
|
||||
( UserId, SessionId, [Start], [Finish] )
|
||||
SELECT TOP 1 UserId,SessionId,[Start],@CurrentTimeStamp FROM Cases
|
||||
WHERE SessionId = @SessionId ORDER BY [Start] ASC;
|
||||
END
|
||||
IF EXISTS (SELECT TOP 1 * FROM UserSessions WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
UPDATE [UserSessions]
|
||||
SET [Finish] = @SessionDate
|
||||
WHERE SessionId = @SessionId;
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT TOP 1 * FROM dbo.Cases WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
INSERT INTO [CaseTime]
|
||||
( CaseId, StatusId, [TimeStamp] )
|
||||
SELECT CaseId, 4, @SessionDate
|
||||
FROM dbo.Cases
|
||||
WHERE SessionId = @SessionId AND Finish IS NULL;
|
||||
IF NOT EXISTS (SELECT TOP 1 * FROM UserSessions WHERE SessionId = @SessionId) AND EXISTS (SELECT TOP 1 * FROM dbo.Cases WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
DECLARE @CurrentTimeStamp DATETIME = GETUTCDATE();
|
||||
INSERT INTO UserSessions
|
||||
( UserId, SessionId, [Start], [Finish] )
|
||||
SELECT TOP 1 UserId,SessionId,[Start],@CurrentTimeStamp FROM Cases
|
||||
WHERE SessionId = @SessionId ORDER BY [Start] ASC;
|
||||
END
|
||||
|
||||
UPDATE [Cases]
|
||||
SET [Finish] = @SessionDate
|
||||
WHERE SessionId = @SessionId AND Finish IS NULL;
|
||||
END
|
||||
IF EXISTS (SELECT TOP 1 * FROM dbo.Cases WHERE SessionId = @SessionId)
|
||||
BEGIN
|
||||
INSERT INTO [CaseTime]
|
||||
( CaseId, StatusId, [TimeStamp] )
|
||||
SELECT CaseId, 4, @SessionDate
|
||||
FROM dbo.Cases
|
||||
WHERE SessionId = @SessionId AND Finish IS NULL;
|
||||
|
||||
</Query>
|
||||
UPDATE [Cases]
|
||||
SET [Finish] = @SessionDate
|
||||
WHERE SessionId = @SessionId AND Finish IS NULL;
|
||||
END
|
||||
|
||||
</Query>
|
||||
<Query Name="UpdateCases">
|
||||
|
||||
DECLARE @CurrentTimeStamp DATETIME = GETUTCDATE();
|
||||
|
||||
IF EXISTS (SELECT TOP 1 * FROM dbo.Cases JOIN dbo.CaseTime ON Cases.CaseId = CaseTime.CaseId WHERE Cases.CaseId = @CaseId AND CaseTime.StatusId = 4 )
|
||||
BEGIN
|
||||
UPDATE [CaseTime]
|
||||
SET Statusid = 2
|
||||
FROM dbo.Cases
|
||||
JOIN dbo.CaseTime ON Cases.CaseId = CaseTime.CaseId
|
||||
WHERE Cases.CaseId = @CaseId AND
|
||||
CaseTime.StatusId = 4
|
||||
UPDATE [CaseTime]
|
||||
SET Statusid = 2
|
||||
FROM dbo.Cases
|
||||
JOIN dbo.CaseTime ON Cases.CaseId = CaseTime.CaseId
|
||||
WHERE Cases.CaseId = @CaseId AND
|
||||
CaseTime.StatusId = 4
|
||||
|
||||
INSERT INTO [CaseTime]
|
||||
( CaseId, StatusId, [TimeStamp] )
|
||||
SELECT @CaseId, 3, @CurrentTimeStamp;
|
||||
INSERT INTO [CaseTime]
|
||||
( CaseId, StatusId, [TimeStamp] )
|
||||
SELECT @CaseId, 3, @CurrentTimeStamp;
|
||||
|
||||
UPDATE [Cases]
|
||||
SET [Finish] = NULL
|
||||
WHERE CaseId = @CaseId;
|
||||
UPDATE [Cases]
|
||||
SET [Finish] = NULL
|
||||
WHERE CaseId = @CaseId;
|
||||
END
|
||||
</Query>
|
||||
</Query>
|
||||
<Query Name="InsertTicket">
|
||||
IF NOT EXISTS (SELECT [TicketId], [UserId],[CaseId],[Status],[Start], [Finish],ActiveTime FROM [Tickets]
|
||||
WHERE [TicketId] = @TicketId AND [UserId] = @UserId AND [CaseId] = @CaseId AND [Status] = @Status AND [Start] = @Start AND [Finish] = @Finish AND ActiveTime = @ActiveTime )
|
||||
BEGIN
|
||||
INSERT INTO [Tickets]
|
||||
([TicketId], [UserId],[CaseId],[Status],[Start], [Finish],ActiveTime)
|
||||
SELECT @TicketId,@UserId,@CaseId,@Status,@Start,@Finish,@ActiveTime;
|
||||
END
|
||||
</Query>
|
||||
IF NOT EXISTS (SELECT [TicketId], [UserId],[CaseId],[Status],[Start], [Finish],ActiveTime FROM [Tickets]
|
||||
WHERE [TicketId] = @TicketId AND [UserId] = @UserId AND [CaseId] = @CaseId AND [Status] = @Status AND [Start] = @Start AND [Finish] = @Finish AND ActiveTime = @ActiveTime )
|
||||
BEGIN
|
||||
INSERT INTO [Tickets]
|
||||
([TicketId], [UserId],[CaseId],[Status],[Start], [Finish],ActiveTime)
|
||||
SELECT @TicketId,@UserId,@CaseId,@Status,@Start,@Finish,@ActiveTime;
|
||||
END
|
||||
</Query>
|
||||
|
||||
<Query Name="AnalyticsReportQuickActionExecution">
|
||||
INSERT INTO [QActionExecutions]
|
||||
|
||||
Reference in New Issue
Block a user