Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
c1050c6
TD-4212, TD-4231, TD-4257 - Error log issues
Swapnamol Jun 18, 2024
aab74c2
Merge branch 'Develop/Fixes/TD-4211_ProdLog_Error_fixes' into Develop…
OluwatobiAwe Jun 24, 2024
21f7f48
Merge pull request #427 from TechnologyEnhancedLearning/Develop/Fixes…
OluwatobiAwe Jun 24, 2024
ccfd1e8
TD-4271 dashboard service optimisation.
OluwatobiAwe Jun 25, 2024
2bb7a7b
removed manual Index for dashboard SP
OluwatobiAwe Jun 26, 2024
de6e357
Merge pull request #437 from TechnologyEnhancedLearning/Develop/Fixes…
OluwatobiAwe Jun 26, 2024
a18bdda
TD-4270 Archive Log Db
OluwatobiAwe Jun 27, 2024
1cbf095
Merge branch 'Develop/Fixes/TD-4211_ProdLog_Error_fixes' into Develop…
OluwatobiAwe Jun 27, 2024
4476483
Merge pull request #439 from TechnologyEnhancedLearning/Develop/Fixes…
OluwatobiAwe Jun 27, 2024
465f1f5
TD-4273 cache RoleUserGroupDetailForUser data
OluwatobiAwe Jun 27, 2024
f069fc2
LogDb script update
OluwatobiAwe Jun 27, 2024
f180ba7
Merge pull request #441 from TechnologyEnhancedLearning/Develop/Fixes…
OluwatobiAwe Jun 27, 2024
724ae3c
Merge remote-tracking branch 'origin/Develop/Fixes/TD-4211_ProdLog_Er…
OluwatobiAwe Jun 27, 2024
4a620e3
Merge pull request #443 from TechnologyEnhancedLearning/Develop/Fixes…
OluwatobiAwe Jun 27, 2024
164e4e2
TD-4285: My Learning Dashboard Tray showing Wrong Counts
Swapnamol Jun 27, 2024
6e62d21
Removed unused temp tables
Swapnamol Jun 27, 2024
8fc81c1
Merge pull request #444 from TechnologyEnhancedLearning/Develop/Fixes…
Swapnamol Jun 27, 2024
b29b087
merge TD-4211 into RC
OluwatobiAwe Jul 15, 2024
9565b57
LH Model update
OluwatobiAwe Jul 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
<PackageReference Include="HtmlSanitizer" Version="6.0.453" />
<PackageReference Include="IdentityModel" Version="4.4.0" />
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.2" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.31" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.32" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.19.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.0" />
Expand Down
2 changes: 0 additions & 2 deletions LearningHub.Nhs.WebUI/Controllers/CatalogueController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,6 @@ public async Task<IActionResult> IndexAsync(string reference, string tab, int? n
CatalogueAccessRequestViewModel catalogueAccessRequest = null;
if (this.ViewBag.UserAuthenticated)
{
var cacheKey = $"{this.CurrentUserId}:AllRolesWithPermissions";
await this.cacheService.RemoveAsync(cacheKey);
userGroups = await this.userGroupService.GetRoleUserGroupDetailAsync();
catalogueAccessRequest = await this.catalogueService.GetLatestCatalogueAccessRequestAsync(catalogue.NodeId);
}
Expand Down
22 changes: 16 additions & 6 deletions LearningHub.Nhs.WebUI/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,17 @@ public async Task<IActionResult> Index(string myLearningDashboard = "my-in-progr
this.Logger.LogInformation("User is authenticated: User is {fullname} and userId is: {lhuserid}", this.User.Identity.GetCurrentName(), this.User.Identity.GetCurrentUserId());
if (this.User.IsInRole("Administrator") || this.User.IsInRole("BlueUser") || this.User.IsInRole("ReadOnly") || this.User.IsInRole("BasicUser"))
{
var learningTask = this.dashboardService.GetMyAccessLearningsAsync(myLearningDashboard, 1);
var resourcesTask = this.dashboardService.GetResourcesAsync(resourceDashboard, 1);
var cataloguesTask = this.dashboardService.GetCataloguesAsync(catalogueDashboard, 1);

await Task.WhenAll(learningTask, resourcesTask, cataloguesTask);

var model = new DashboardViewModel()
{
MyLearnings = await this.dashboardService.GetMyAccessLearningsAsync(myLearningDashboard, 1),
Resources = await this.dashboardService.GetResourcesAsync(resourceDashboard, 1),
Catalogues = await this.dashboardService.GetCataloguesAsync(catalogueDashboard, 1),
MyLearnings = await learningTask,
Resources = await resourcesTask,
Catalogues = await cataloguesTask,
};

if (!string.IsNullOrEmpty(this.Request.Query["preview"]) && Convert.ToBoolean(this.Request.Query["preview"]))
Expand Down Expand Up @@ -271,9 +277,13 @@ public async Task<IActionResult> LoadPage(string dashBoardTray = "my-learning",
}
else
{
model.MyLearnings = await this.dashboardService.GetMyAccessLearningsAsync(myLearningDashBoard, dashBoardTray == "my-learning" ? pageNumber : 1);
model.Resources = await this.dashboardService.GetResourcesAsync(resourceDashBoard, dashBoardTray == "resources" ? pageNumber : 1);
model.Catalogues = await this.dashboardService.GetCataloguesAsync(catalogueDashBoard, dashBoardTray == "catalogues" ? pageNumber : 1);
var learningTask = this.dashboardService.GetMyAccessLearningsAsync(myLearningDashBoard, dashBoardTray == "my-learning" ? pageNumber : 1);
var resourcesTask = this.dashboardService.GetResourcesAsync(resourceDashBoard, dashBoardTray == "resources" ? pageNumber : 1);
var cataloguesTask = this.dashboardService.GetCataloguesAsync(catalogueDashBoard, dashBoardTray == "catalogues" ? pageNumber : 1);
await Task.WhenAll(learningTask, resourcesTask, cataloguesTask);
model.MyLearnings = await learningTask;
model.Resources = await resourcesTask;
model.Catalogues = await cataloguesTask;
return this.View("Dashboard", model);
}
}
Expand Down
4 changes: 2 additions & 2 deletions LearningHub.Nhs.WebUI/Controllers/ResourceController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public async Task<IActionResult> Index(int resourceReferenceId, bool? acceptSens

var resource = await this.resourceService.GetItemByIdAsync(resourceReferenceId);

if (resource.Id == 0 || (resource.Catalogue != null && resource.Catalogue.Hidden))
if ((resource == null && resource.Id == 0) || (resource.Catalogue != null && resource.Catalogue.Hidden))
{
this.ViewBag.SupportFormUrl = this.Settings.SupportUrls.SupportForm;
return this.View("Unavailable");
Expand All @@ -147,7 +147,7 @@ public async Task<IActionResult> Index(int resourceReferenceId, bool? acceptSens
var hasCatalogueAccess = false;
if (resource.Catalogue.RestrictedAccess && this.User.Identity.IsAuthenticated)
{
var userGroups = await this.userGroupService.GetRoleUserGroupDetailForUserAsync(this.CurrentUserId);
var userGroups = await this.userGroupService.GetRoleUserGroupDetailAsync();

hasCatalogueAccess = userGroups.Any(x => x.CatalogueNodeId == resource.Catalogue.NodeId &&
(x.RoleEnum == RoleEnum.LocalAdmin || x.RoleEnum == RoleEnum.Editor || x.RoleEnum == RoleEnum.Reader)) || this.User.IsInRole("Administrator");
Expand Down
2 changes: 1 addition & 1 deletion LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
<PackageReference Include="HtmlAgilityPack" Version="1.11.38" />
<PackageReference Include="IdentityModel" Version="4.3.0" />
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.0" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.31" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.32" />
<PackageReference Include="linqtotwitter" Version="6.9.0" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.19.0" />
<PackageReference Include="Microsoft.ApplicationInsights.EventCounterCollector" Version="2.21.0" />
Expand Down
25 changes: 14 additions & 11 deletions LearningHub.Nhs.WebUI/Services/ResourceService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -418,18 +418,21 @@ public async Task<ResourceItemViewModel> GetItemByIdAsync(int id)

resourceItem = JsonConvert.DeserializeObject<ResourceItemViewModel>(result);

resourceItem.LicenseUrl = this.settings.ResourceLicenseUrl;

// if resource type is video, add azure media content protection authentication token
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Video && resourceItem.VideoDetails != null && resourceItem.VideoDetails.ResourceAzureMediaAsset != null && !string.IsNullOrEmpty(resourceItem.VideoDetails.ResourceAzureMediaAsset.FilePath))
{
resourceItem.VideoDetails.ResourceAzureMediaAsset.AuthenticationToken = await this.azureMediaService.GetContentAuthenticationTokenAsync(resourceItem.VideoDetails.ResourceAzureMediaAsset.FilePath);
}

// if resource type is audio, add azure media content protection authentication token
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Audio && resourceItem.AudioDetails != null && resourceItem.AudioDetails.ResourceAzureMediaAsset != null && !string.IsNullOrEmpty(resourceItem.AudioDetails.ResourceAzureMediaAsset.FilePath))
if (resourceItem != null)
{
resourceItem.AudioDetails.ResourceAzureMediaAsset.AuthenticationToken = await this.azureMediaService.GetContentAuthenticationTokenAsync(resourceItem.AudioDetails.ResourceAzureMediaAsset.FilePath);
resourceItem.LicenseUrl = this.settings.ResourceLicenseUrl;

// if resource type is video, add azure media content protection authentication token
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Video && resourceItem.VideoDetails != null && resourceItem.VideoDetails.ResourceAzureMediaAsset != null && !string.IsNullOrEmpty(resourceItem.VideoDetails.ResourceAzureMediaAsset.FilePath))
{
resourceItem.VideoDetails.ResourceAzureMediaAsset.AuthenticationToken = await this.azureMediaService.GetContentAuthenticationTokenAsync(resourceItem.VideoDetails.ResourceAzureMediaAsset.FilePath);
}

// if resource type is audio, add azure media content protection authentication token
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Audio && resourceItem.AudioDetails != null && resourceItem.AudioDetails.ResourceAzureMediaAsset != null && !string.IsNullOrEmpty(resourceItem.AudioDetails.ResourceAzureMediaAsset.FilePath))
{
resourceItem.AudioDetails.ResourceAzureMediaAsset.AuthenticationToken = await this.azureMediaService.GetContentAuthenticationTokenAsync(resourceItem.AudioDetails.ResourceAzureMediaAsset.FilePath);
}
}
}
else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized
Expand Down
44 changes: 25 additions & 19 deletions LearningHub.Nhs.WebUI/Services/UserGroupService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,34 @@ public async Task<List<RoleUserGroupViewModel>> GetRoleUserGroupDetailAsync()

/// <inheritdoc />
public async Task<List<RoleUserGroupViewModel>> GetRoleUserGroupDetailForUserAsync(int userId)
{
var cacheKey = $"{userId}:AllRolesWithPermissions";
return await this.cacheService.GetOrFetchAsync(cacheKey, () => this.FetchRoleUserGroupDetailForUserAsync(userId));
}

/// <inheritdoc />
public async Task<bool> UserHasPermissionAsync(string permissionCode)
{
var userGroupsTask = this.GetRoleUserGroupDetailAsync();
var rolesTask = this.roleService.GetRolesAsync();

await Task.WhenAll(userGroupsTask, rolesTask);

var userRoles = userGroupsTask.Result.Select(t => t.RoleId).Distinct();

return rolesTask.Result
.Where(r => userRoles.Contains(r.RoleId))
.SelectMany(r => r.Permissions)
.Any(p => p == permissionCode);
}

private async Task<List<RoleUserGroupViewModel>> FetchRoleUserGroupDetailAsync()
{
List<RoleUserGroupViewModel> viewmodel = null;

var client = await this.LearningHubHttpClient.GetClientAsync();

var request = $"UserGroup/GetUserGroupRoleDetailByUserId/{userId}";
var request = $"UserGroup/GetUserGroupRoleDetail";
var response = await client.GetAsync(request).ConfigureAwait(false);

if (response.IsSuccessStatusCode)
Expand All @@ -74,29 +96,13 @@ public async Task<List<RoleUserGroupViewModel>> GetRoleUserGroupDetailForUserAsy
return viewmodel;
}

/// <inheritdoc />
public async Task<bool> UserHasPermissionAsync(string permissionCode)
{
var userGroupsTask = this.GetRoleUserGroupDetailAsync();
var rolesTask = this.roleService.GetRolesAsync();

await Task.WhenAll(userGroupsTask, rolesTask);

var userRoles = userGroupsTask.Result.Select(t => t.RoleId).Distinct();

return rolesTask.Result
.Where(r => userRoles.Contains(r.RoleId))
.SelectMany(r => r.Permissions)
.Any(p => p == permissionCode);
}

private async Task<List<RoleUserGroupViewModel>> FetchRoleUserGroupDetailAsync()
private async Task<List<RoleUserGroupViewModel>> FetchRoleUserGroupDetailForUserAsync(int userId)
{
List<RoleUserGroupViewModel> viewmodel = null;

var client = await this.LearningHubHttpClient.GetClientAsync();

var request = $"UserGroup/GetUserGroupRoleDetail";
var request = $"UserGroup/GetUserGroupRoleDetailByUserId/{userId}";
var response = await client.GetAsync(request).ConfigureAwait(false);

if (response.IsSuccessStatusCode)
Expand Down
4 changes: 2 additions & 2 deletions WebAPI/LearningHub.Nhs.API/Controllers/HierarchyController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ public HierarchyController(IUserService userService, IHierarchyService hierarchy
/// <returns>The node details.</returns>
[HttpGet]
[Route("GetNodeDetails/{nodeId}")]
public NodeViewModel GetNodeDetails(int nodeId)
public async Task<NodeViewModel> GetNodeDetails(int nodeId)
{
var retVal = this.hierarchyService.GetNodeDetails(nodeId);
var retVal = await this.hierarchyService.GetNodeDetails(nodeId);

return retVal;
}
Expand Down
12 changes: 6 additions & 6 deletions WebAPI/LearningHub.Nhs.API/Controllers/UserGroupController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ public async Task<IActionResult> GetUserGroupAdminDetailById(int id)
/// <returns>The <see cref="Task"/>.</returns>
[HttpGet]
[Route("GetUserGroupAdminRoleDetailById/{id}")]
public IActionResult GetUserGroupAdminRoleDetailById(int id)
public async Task<IActionResult> GetUserGroupAdminRoleDetailById(int id)
{
var retVal = this.userGroupService.GetUserGroupRoleDetailByUserGroupId(id);
var retVal = await this.userGroupService.GetUserGroupRoleDetailByUserGroupId(id);

return this.Ok(retVal);
}
Expand All @@ -75,9 +75,9 @@ public IActionResult GetUserGroupAdminRoleDetailById(int id)
/// <returns>The <see cref="Task"/>.</returns>
[HttpGet]
[Route("GetUserGroupRoleDetailByUserId/{userId}")]
public IActionResult GetRoleUserGroupDetailByUserId(int userId)
public async Task<IActionResult> GetRoleUserGroupDetailByUserId(int userId)
{
var retVal = this.userGroupService.GetRoleUserGroupDetailByUserId(userId);
var retVal = await this.userGroupService.GetRoleUserGroupDetailByUserId(userId);

return this.Ok(retVal);
}
Expand All @@ -88,9 +88,9 @@ public IActionResult GetRoleUserGroupDetailByUserId(int userId)
/// <returns>The <see cref="Task"/>.</returns>
[HttpGet]
[Route("GetUserGroupRoleDetail")]
public IActionResult GetRoleUserGroupDetail()
public async Task<IActionResult> GetRoleUserGroupDetail()
{
var retVal = this.userGroupService.GetRoleUserGroupDetailByUserId(this.CurrentUserId);
var retVal = await this.userGroupService.GetRoleUserGroupDetailByUserId(this.CurrentUserId);

return this.Ok(retVal);
}
Expand Down
2 changes: 1 addition & 1 deletion WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<PackageReference Include="elfhHub.Nhs.Models" Version="3.0.8" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.0" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.31" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.32" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.19.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<ItemGroup>
<PackageReference Include="elfhHub.Nhs.Models" Version="3.0.8" />
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.0" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.31" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.32" />
<PackageReference Update="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageReference Include="elfhHub.Nhs.Models" Version="3.0.8" />
<PackageReference Include="FluentAssertions" Version="6.2.0" />
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.0" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.31" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.32" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="Moq" Version="4.16.1" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@
<None Include="Scripts\Pre-Deploy\Scripts\TD-807_AlterTable_HierarchyEditNodeResourceLookup.sql" />
<None Include="Scripts\Pre-Deploy\Scripts\TD-887_PreLoginLandingPageChanges.sql" />
<None Include="Scripts\Pre-Deploy\Scripts\TD-2902 Add resource types to Content Server.sql" />
<Build Include="Stored Procedures\Resources\GetRecentDashboardResources.sql" />
<Build Include="Stored Procedures\Resources\GetMyInProgressDashboardResources.sql" />
<Build Include="Stored Procedures\Resources\GetMyRecentCompletedDashboardResources.sql" />
</ItemGroup>
<ItemGroup>
<RefactorLog Include="LearningHub.Nhs.Database.refactorlog" />
Expand Down Expand Up @@ -515,6 +518,10 @@
<None Include="Scripts\Post-Deploy\Scripts\TD-2929_ActivityStatusUpdates.sql" />
<Build Include="Stored Procedures\Resources\BlockCollectionFileSearch.sql" />
<None Include="Scripts\Post-Deploy\Scripts\TD-4031_AMStoMKIOMigration.sql" />
<Build Include="Scripts\Post-Deploy\Scripts\TD-4270_Archive_LogDb.sql" />
<Build Include="Stored Procedures\Resources\GetPopularDashboardResources.sql" />
<Build Include="Stored Procedures\Resources\GetRatedDashboardResources.sql" />
<Build Include="Stored Procedures\Resources\GetMyCertificatesDashboardResources.sql" />
</ItemGroup>
<ItemGroup>
<None Include="Scripts\Pre-Deploy\Scripts\Card5766_AuthorTableChanges.PreDeployment.sql" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
-- Define the date 6 months ago
DECLARE @SixMonthsAgo DATE;
SET @SixMonthsAgo = DATEADD(MONTH, -6, GETDATE());
GO


IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'LogArchive' AND schema_id = SCHEMA_ID('hub'))
BEGIN
SELECT TOP (0) *
INTO hub.LogArchive
FROM hub.Log;
END
GO


INSERT INTO hub.LogArchive ([Application], [Logged], [Level], [Message], [Logger], [Callsite], [Exception], [UserId], [Username])
SELECT [Application], [Logged], [Level], [Message], [Logger], [Callsite], [Exception], [UserId], [Username]
FROM hub.Log
WHERE [Logged] < @SixMonthsAgo;
GO


DELETE FROM hub.Log WHERE [Logged] < @SixMonthsAgo;
GO


Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
-- 11-05-2023 RS Removed Description and AuthoredBy as no longer required for screen.
-- 15-05-2023 RS Added AuthoredBy back in following design decision change.
-- 23-06-2023 RS Removed AverageRating and RatingCount as not required from this proc. That data comes separately from RatingService.
-- 05-06-2023 SA Modified the sp to fix the sql timeout issues.
-------------------------------------------------------------------------------
CREATE PROCEDURE [hierarchy].[GetNodeContentsForCatalogueBrowse]
(
Expand All @@ -23,6 +24,14 @@ AS

BEGIN

IF @NodeId IS NULL
BEGIN
RAISERROR('NodeId cannot be null', 16, 1)
RETURN
END

;WITH CTENode AS(SELECT DISTINCT NodeId FROM hierarchy.NodeResourceLookup WHERE Deleted = 0)

SELECT
ROW_NUMBER() OVER(ORDER BY DisplayOrder) AS Id,
[Name],
Expand Down Expand Up @@ -64,7 +73,7 @@ BEGIN
INNER JOIN
hierarchy.FolderNodeVersion fnv ON fnv.NodeVersionId = nv.Id
INNER JOIN -- Exclude folders with no published resources.
(SELECT DISTINCT NodeId FROM hierarchy.NodeResourceLookup WHERE Deleted = 0) nrl ON cn.Id = nrl.NodeId
CTENode nrl ON cn.Id = nrl.NodeId
WHERE
nl.ParentNodeId = @NodeId
AND nl.Deleted = 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
-- Modification History
--
-- 21-01-2021 Killian Davies Initial Revision
-- 05-06-2023 SA Modified the sp to fix the sql timeout issues.
-------------------------------------------------------------------------------
CREATE PROCEDURE [hub].[RoleUserGroupGetByUserGroupId]
(
Expand All @@ -17,7 +18,7 @@ AS
BEGIN

SELECT
CAST([Sequence] AS int) AS [Key],
CAST([Sequence] AS int) AS [Key],
RoleUserGroupId,
UserGroupId,
UserGroupName,
Expand Down
Loading