Skip to content

Commit b38311a

Browse files
committed
Unit Test fix and reference fix
1 parent ada4ae8 commit b38311a

File tree

19 files changed

+1083
-83
lines changed

19 files changed

+1083
-83
lines changed

OpenAPI/LearningHub.Nhs.OpenApi.Models/Configuration/FindwiseConfig.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,5 @@ public class FindwiseConfig
5454
/// Gets or sets the index method.
5555
/// </summary>
5656
public string IndexMethod { get; set; } = null!;
57-
58-
/// <summary>
59-
/// Gets or sets the search component.
60-
/// </summary>
61-
public string UrlSearchComponent { get; set; } = null!;
6257
}
6358
}

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/EntityFramework/LearningHubDbContext.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ namespace LearningHub.Nhs.OpenApi.Repositories.EntityFramework
1414
using LearningHub.Nhs.Models.Entities.Resource.Blocks;
1515
using LearningHub.Nhs.Models.Hierarchy;
1616
using LearningHub.Nhs.Models.Messaging;
17+
using LearningHub.Nhs.Models.MyLearning;
1718
using LearningHub.Nhs.Models.Resource;
1819
using LearningHub.Nhs.Models.Resource.ResourceDisplay;
1920
using LearningHub.Nhs.Models.User;
@@ -455,6 +456,11 @@ public LearningHubDbContext(LearningHubDbContextOptions options)
455456
/// </summary>
456457
public virtual DbSet<CatalogueAccessRequest> CatalogueAccessRequest { get; set; }
457458

459+
/// <summary>
460+
/// Gets or sets the folder node version.
461+
/// </summary>
462+
public virtual DbSet<FolderNodeVersion> FolderNodeVersion { get; set; }
463+
458464
/// <summary>
459465
/// Gets or sets the catalogue node version.
460466
/// </summary>
@@ -701,11 +707,21 @@ public LearningHubDbContext(LearningHubDbContextOptions options)
701707
/// </summary>
702708
public virtual DbSet<ResourceVersionProvider> ResourceVersionProvider { get; set; }
703709

710+
/// <summary>
711+
/// Gets or sets the resource activity.
712+
/// </summary>
713+
public virtual DbSet<MyLearningActivity> MyLearningActivity { get; set; }
714+
704715
/// <summary>
705716
/// Gets or sets the html resource version.
706717
/// </summary>
707718
public virtual DbSet<HtmlResourceVersion> HtmlResourceVersion { get; set; }
708719

720+
/// <summary>
721+
/// Gets or sets the AssessmentResourceActivityQuestionViewModel.
722+
/// </summary>
723+
public virtual DbSet<AssessmentActivityCompletionViewModel> AssessmentActivityCompletionViewModel { get; set; }
724+
709725
/// <summary>
710726
/// The on model creating.
711727
/// </summary>

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/Activity/ResourceActivityRepository.cs

Lines changed: 687 additions & 0 deletions
Large diffs are not rendered by default.

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/BookmarkRepository.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
namespace LearningHub.Nhs.Repository
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Repositories
22
{
33
using System.Linq;
44
using System.Threading.Tasks;
55
using LearningHub.Nhs.Models.Entities;
66
using LearningHub.Nhs.OpenApi.Repositories.EntityFramework;
77
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
8-
using LearningHub.Nhs.OpenApi.Repositories.Repositories;
98
using Microsoft.EntityFrameworkCore;
109

1110
/// <summary>
@@ -30,7 +29,7 @@ public BookmarkRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager
3029
/// <returns>The <see cref="Task{UserBookmark}"/>.</returns>
3130
public async Task<UserBookmark> GetById(int bookmarkId)
3231
{
33-
return await this.DbContext.UserBookmark.SingleAsync(ub => ub.Id == bookmarkId);
32+
return await DbContext.UserBookmark.SingleAsync(ub => ub.Id == bookmarkId);
3433
}
3534

3635
/// <summary>
@@ -41,16 +40,16 @@ public async Task<UserBookmark> GetById(int bookmarkId)
4140
/// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns>
4241
public async Task DeleteFolder(int bookmarkId, int userId)
4342
{
44-
var bookmarks = this.DbContext.UserBookmark.Where(ub => ub.Id == bookmarkId || ub.ParentId == bookmarkId);
43+
var bookmarks = DbContext.UserBookmark.Where(ub => ub.Id == bookmarkId || ub.ParentId == bookmarkId);
4544

4645
foreach (var bookmark in bookmarks)
4746
{
4847
bookmark.ParentId = null;
4948
bookmark.Deleted = true;
50-
this.SetAuditFieldsForUpdate(userId, bookmark);
49+
SetAuditFieldsForUpdate(userId, bookmark);
5150
}
5251

53-
await this.DbContext.SaveChangesAsync();
52+
await DbContext.SaveChangesAsync();
5453
}
5554
}
5655
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Repositories.Hierarchy
2+
{
3+
using System.Threading.Tasks;
4+
using LearningHub.Nhs.Models.Entities.Hierarchy;
5+
using LearningHub.Nhs.OpenApi.Repositories.EntityFramework;
6+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
7+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy;
8+
using Microsoft.EntityFrameworkCore;
9+
10+
/// <summary>
11+
/// The FolderNodeVersionRepository.
12+
/// </summary>
13+
public class FolderNodeVersionRepository : GenericRepository<FolderNodeVersion>, IFolderNodeVersionRepository
14+
{
15+
/// <summary>
16+
/// Initializes a new instance of the <see cref="FolderNodeVersionRepository"/> class.
17+
/// </summary>
18+
/// <param name="dbContext">The dbContext.</param>
19+
/// <param name="tzOffsetManager">The Timezone offset manager.</param>
20+
public FolderNodeVersionRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager tzOffsetManager)
21+
: base(dbContext, tzOffsetManager)
22+
{
23+
}
24+
25+
/// <summary>
26+
/// The GetFolder.
27+
/// </summary>
28+
/// <param name="nodeVersionId">The node version id.</param>
29+
/// <returns>The folder node version.</returns>
30+
public async Task<FolderNodeVersion> GetFolderAsync(int nodeVersionId)
31+
{
32+
var folder = await DbContext.FolderNodeVersion.AsNoTracking()
33+
.Include(f => f.NodeVersion)
34+
.ThenInclude(f => f.Node)
35+
.FirstOrDefaultAsync(f => f.NodeVersionId == nodeVersionId);
36+
37+
return folder;
38+
}
39+
}
40+
}

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Startup.cs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ namespace LearningHub.Nhs.OpenApi.Repositories
22
{
33
using LearningHub.Nhs.OpenApi.Repositories.EntityFramework;
44
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
5+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Activity;
6+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy;
7+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Messaging;
8+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Resources;
59
using LearningHub.Nhs.OpenApi.Repositories.Repositories;
10+
using LearningHub.Nhs.OpenApi.Repositories.Repositories.Activity;
11+
using LearningHub.Nhs.OpenApi.Repositories.Repositories.Hierarchy;
12+
using LearningHub.Nhs.OpenApi.Repositories.Repositories.Messaging;
13+
using LearningHub.Nhs.OpenApi.Repositories.Repositories.Resources;
614
using Microsoft.Extensions.Configuration;
715
using Microsoft.Extensions.DependencyInjection;
816

@@ -27,6 +35,78 @@ private static void AddRepositoryImplementations(this IServiceCollection service
2735
{
2836
services.AddScoped<IResourceRepository, ResourceRepository>();
2937
services.AddScoped<ICatalogueRepository, CatalogueRepository>();
38+
services.AddScoped<ITimezoneOffsetManager, TimezoneOffsetManager>();
39+
services.AddScoped<IRoleUserGroupRepository, RoleUserGroupRepository>();
40+
services.AddScoped<IUserUserGroupRepository, UserUserGroupRepository>();
41+
services.AddScoped<IUserRepository, UserRepository>();
42+
services.AddScoped<IQuestionBlockRepository, QuestionBlockRepository>();
43+
services.AddScoped<IEmailTemplateRepository, EmailTemplateRepository>();
44+
services.AddScoped<IEmailChangeValidationTokenRepository, EmailChangeValidationTokenRepository>();
45+
services.AddScoped<IMessageRepository, MessageRepository>();
46+
services.AddScoped<IUserProfileRepository, UserProfileRepository>();
47+
services.AddTransient<INotificationTemplateRepository, NotificationTemplateRepository>();
48+
services.AddTransient<IBookmarkRepository, BookmarkRepository>();
49+
services.AddTransient<IProviderRepository, ProviderRepository>();
50+
51+
// Resources
52+
services.AddScoped<IArticleResourceVersionRepository, ArticleResourceVersionRepository>();
53+
services.AddScoped<IArticleResourceVersionFileRepository, ArticleResourceVersionFileRepository>();
54+
services.AddScoped<ICaseResourceVersionRepository, CaseResourceVersionRepository>();
55+
services.AddScoped<IWholeSlideImageRepository, WholeSlideImageRepository>();
56+
services.AddScoped<IVideoRepository, VideoRepository>();
57+
services.AddScoped<IEmbeddedResourceVersionRepository, EmbeddedResourceVersionRepository>();
58+
services.AddScoped<IEquipmentResourceVersionRepository, EquipmentResourceVersionRepository>();
59+
services.AddScoped<IFileRepository, FileRepository>();
60+
services.AddScoped<IFileChunkDetailRepository, FileChunkDetailRepository>();
61+
services.AddScoped<IFileTypeRepository, FileTypeRepository>();
62+
services.AddScoped<IGenericFileResourceVersionRepository, GenericFileResourceVersionRepository>();
63+
services.AddScoped<IHtmlResourceVersionRepository, HtmlResourceVersionRepository>();
64+
services.AddScoped<IBlockCollectionRepository, BlockCollectionRepository>();
65+
services.AddScoped<IImageResourceVersionRepository, ImageResourceVersionRepository>();
66+
services.AddScoped<IResourceLicenceRepository, ResourceLicenceRepository>();
67+
services.AddScoped<IResourceReferenceRepository, ResourceReferenceRepository>();
68+
services.AddScoped<IResourceRepository, ResourceRepository>();
69+
services.AddScoped<IResourceVersionAuthorRepository, ResourceVersionAuthorRepository>();
70+
services.AddScoped<IResourceVersionKeywordRepository, ResourceVersionKeywordRepository>();
71+
services.AddScoped<IResourceVersionFlagRepository, ResourceVersionFlagRepository>();
72+
services.AddScoped<IResourceVersionRepository, ResourceVersionRepository>();
73+
services.AddScoped<IVideoResourceVersionRepository, VideoResourceVersionRepository>();
74+
services.AddScoped<IAudioResourceVersionRepository, AudioResourceVersionRepository>();
75+
services.AddScoped<IScormResourceVersionRepository, ScormResourceVersionRepository>();
76+
services.AddScoped<IResourceVersionValidationResultRepository, ResourceVersionValidationResultRepository>();
77+
services.AddScoped<IWebLinkResourceVersionRepository, WebLinkResourceVersionRepository>();
78+
services.AddScoped<IResourceVersionUserAcceptanceRepository, ResourceVersionUserAcceptanceRepository>();
79+
services.AddScoped<IAssessmentResourceVersionRepository, AssessmentResourceVersionRepository>();
80+
services.AddScoped<IResourceVersionProviderRepository, ResourceVersionProviderRepository>();
81+
82+
services.AddScoped<IResourceActivityRepository, ResourceActivityRepository>();
83+
services.AddScoped<IAssessmentResourceActivityRepository, AssessmentResourceActivityRepository>();
84+
services.AddScoped<IAssessmentResourceActivityMatchQuestionRepository, AssessmentResourceActivityMatchQuestionRepository>();
85+
services.AddScoped<IAssessmentResourceActivityInteractionRepository, AssessmentResourceActivityInteractionRepository>();
86+
services.AddScoped<IAssessmentResourceActivityInteractionAnswerRepository, AssessmentResourceActivityInteractionAnswerRepository>();
87+
services.AddScoped<IMediaResourceActivityRepository, MediaResourceActivityRepository>();
88+
services.AddScoped<IMediaResourceActivityInteractionRepository, MediaResourceActivityInteractionRepository>();
89+
services.AddScoped<INodeActivityRepository, NodeActivityRepository>();
90+
91+
// Activity
92+
services.AddScoped<IResourceActivityRepository, ResourceActivityRepository>();
93+
services.AddScoped<IScormActivityRepository, ScormActivityRepository>();
94+
95+
// Hierarchy
96+
services.AddScoped<INodeRepository, NodeRepository>();
97+
services.AddScoped<INodeResourceRepository, NodeResourceRepository>();
98+
services.AddScoped<INodeResourceLookupRepository, NodeResourceLookupRepository>();
99+
services.AddScoped<INodePathRepository, NodePathRepository>();
100+
services.AddScoped<IPublicationRepository, PublicationRepository>();
101+
services.AddScoped<ICatalogueNodeVersionRepository, CatalogueNodeVersionRepository>();
102+
services.AddScoped<ICatalogueAccessRequestRepository, CatalogueAccessRequestRepository>();
103+
services.AddScoped<IFolderNodeVersionRepository, FolderNodeVersionRepository>();
104+
services.AddScoped<IHierarchyEditRepository, HierarchyEditRepository>();
105+
services.AddScoped<IHierarchyEditDetailRepository, HierarchyEditDetailRepository>();
106+
107+
// External
108+
services.AddScoped<IUserProfileRepository, UserProfileRepository>();
109+
30110
}
31111
}
32112
}

OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/NotificationTemplateService.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
namespace LearningHub.Nhs.Services
1+
namespace LearningHub.Nhs.OpenApi.Services.Services
22
{
33
using System.Collections.Generic;
44
using System.Linq;
55
using LearningHub.Nhs.Models.Entities;
66
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
77
using LearningHub.Nhs.OpenApi.Services.Interface.HttpClients;
88
using LearningHub.Nhs.OpenApi.Services.Interface.Services;
9-
using LearningHub.Nhs.OpenApi.Services.Services;
109
using Microsoft.Extensions.Logging;
1110

1211
/// <summary>
@@ -42,10 +41,10 @@ public NotificationTemplateService(
4241
/// <returns>The notification with message and title set.</returns>
4342
public Notification GetCatalogueAccessRequestAccepted(string catalogueName, string catalogueUrl)
4443
{
45-
var template = this.notificationTemplateRepository.GetById(Models.Enums.NotificationTemplates.CatalogueAccessRequestSuccess);
44+
var template = notificationTemplateRepository.GetById(Nhs.Models.Enums.NotificationTemplates.CatalogueAccessRequestSuccess);
4645
return new Notification
4746
{
48-
Message = this.Replace(template.Body, new Dictionary<string, string>
47+
Message = Replace(template.Body, new Dictionary<string, string>
4948
{
5049
["CatalogueName"] = catalogueName,
5150
["CatalogueUrl"] = catalogueUrl,
@@ -63,10 +62,10 @@ public Notification GetCatalogueAccessRequestAccepted(string catalogueName, stri
6362
/// <returns>The notification with message and title set.</returns>
6463
public Notification GetCatalogueAccessRequestFailure(string catalogueName, string catalogueUrl, string rejectionReason)
6564
{
66-
var template = this.notificationTemplateRepository.GetById(Models.Enums.NotificationTemplates.CatalogueAccessRequestFailure);
65+
var template = notificationTemplateRepository.GetById(Nhs.Models.Enums.NotificationTemplates.CatalogueAccessRequestFailure);
6766
return new Notification
6867
{
69-
Message = this.Replace(template.Body, new Dictionary<string, string>
68+
Message = Replace(template.Body, new Dictionary<string, string>
7069
{
7170
["CatalogueName"] = catalogueName,
7271
["CatalogueUrl"] = catalogueUrl,
@@ -85,10 +84,10 @@ public Notification GetCatalogueAccessRequestFailure(string catalogueName, strin
8584
/// <returns>The notification with message and title set.</returns>
8685
public Notification GetCatalogueEditorAdded(string supportUrl, string catalogueName, string catalogueUrl)
8786
{
88-
var template = this.notificationTemplateRepository.GetById(Models.Enums.NotificationTemplates.CatalogueEditorAdded);
87+
var template = notificationTemplateRepository.GetById(Nhs.Models.Enums.NotificationTemplates.CatalogueEditorAdded);
8988
return new Notification
9089
{
91-
Message = this.Replace(template.Body, new Dictionary<string, string>
90+
Message = Replace(template.Body, new Dictionary<string, string>
9291
{
9392
["CatalogueName"] = catalogueName,
9493
["CatalogueUrl"] = catalogueUrl,
@@ -107,10 +106,10 @@ public Notification GetCatalogueEditorAdded(string supportUrl, string catalogueN
107106
/// <returns>The notification with message and title set.</returns>
108107
public Notification GetCatalogueEditorRemoved(string supportUrl, string catalogueName, string catalogueUrl)
109108
{
110-
var template = this.notificationTemplateRepository.GetById(Models.Enums.NotificationTemplates.CatalogueEditorRemoved);
109+
var template = notificationTemplateRepository.GetById(Nhs.Models.Enums.NotificationTemplates.CatalogueEditorRemoved);
111110
return new Notification
112111
{
113-
Message = this.Replace(template.Body, new Dictionary<string, string>
112+
Message = Replace(template.Body, new Dictionary<string, string>
114113
{
115114
["CatalogueName"] = catalogueName,
116115
["CatalogueUrl"] = catalogueUrl,

OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public class SearchService : ISearchService
4646
/// <param name="findwiseClient">
4747
/// The <see cref="IFindwiseClient"/>.
4848
/// </param>
49+
/// <param name="findwiseConfig">
50+
/// The <see cref="findwiseConfig"/>.
51+
/// </param>
4952
/// <param name="resourceRepository">
5053
/// The <see cref="IResourceRepository"/>.
5154
/// </param>
@@ -139,7 +142,7 @@ public async Task<SearchAllCatalogueResultModel> GetAllCatalogueSearchResultsAsy
139142
var offset = catalogSearchRequestModel.PageIndex * catalogSearchRequestModel.PageSize;
140143
var client = await this.findwiseClient.GetClient(this.findwiseConfig.SearchBaseUrl);
141144
var request = string.Format(
142-
this.findwiseConfig.UrlSearchComponent + "?offset={1}&hits={2}&q={3}&token={4}",
145+
this.findwiseConfig.SearchEndpointPath + "?offset={1}&hits={2}&q={3}&token={4}",
143146
this.findwiseConfig.CollectionIds.Catalogue,
144147
offset,
145148
catalogSearchRequestModel.PageSize,

0 commit comments

Comments
 (0)