Skip to content

Commit 34bbb27

Browse files
committed
P1 endpoints for TD-5118
1 parent 45c6695 commit 34bbb27

File tree

63 files changed

+5090
-17
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+5090
-17
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace LearningHub.Nhs.OpenApi.Models.Configuration
2+
{
3+
/// <summary>
4+
/// The AzureBlobSettings.
5+
/// </summary>
6+
public class AzureBlobSettings
7+
{
8+
/// <summary>
9+
/// Gets or sets the connectionString.
10+
/// </summary>
11+
public string ConnectionString { get; set; } = null!;
12+
13+
/// <summary>
14+
/// Gets or sets the catalogue collection id.
15+
/// </summary>
16+
public string UploadContainer { get; set; } = null!;
17+
}
18+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace LearningHub.Nhs.OpenApi.Models.Configuration
2+
{
3+
/// <summary>
4+
/// The AzureConfig.
5+
/// </summary>
6+
public class AzureConfig
7+
{
8+
/// <summary>
9+
/// Gets or sets the azure blob settings.
10+
/// </summary>
11+
public AzureBlobSettings AzureBlobSettings { get; set; } = null!;
12+
}
13+
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,10 @@ public class LearningHubConfig
1414
/// Gets or sets <see cref="LaunchResourceEndpoint"/>.
1515
/// </summary>
1616
public string LaunchResourceEndpoint { get; set; } = null!;
17+
18+
/// <summary>
19+
/// Gets or sets <see cref="ContentServerUrl"/>.
20+
/// </summary>
21+
public string ContentServerUrl { get; set; } = null!;
1722
}
1823
}
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy
2+
{
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
using LearningHub.Nhs.Models.Catalogue;
7+
using LearningHub.Nhs.Models.Dashboard;
8+
using LearningHub.Nhs.Models.Entities.Hierarchy;
9+
10+
/// <summary>
11+
/// The ICatalogueNodeVersionRepository.
12+
/// </summary>
13+
public interface ICatalogueNodeVersionRepository : IGenericRepository<CatalogueNodeVersion>
14+
{
15+
/// <summary>
16+
/// The get catalogues.
17+
/// </summary>
18+
/// <param name="catalogueIds">The catalogue ids.</param>
19+
/// <returns>A <see cref="Task{TResult}"/> representing the result of the asynchronous operation.</returns>
20+
Task<List<CatalogueNodeVersion>> GetCatalogues(List<int> catalogueIds);
21+
22+
/// <summary>
23+
/// The get catalogues.
24+
/// </summary>
25+
/// <returns>The <see cref="Task"/>.</returns>
26+
Task<List<CatalogueNodeVersion>> GetPublishedCatalogues();
27+
28+
/// <summary>
29+
/// The get catalogues for user.
30+
/// </summary>
31+
/// <param name="userId">The userId.</param>
32+
/// <returns>The <see cref="Task"/>.</returns>
33+
IQueryable<CatalogueNodeVersion> GetPublishedCataloguesForUserAsync(int userId);
34+
35+
/// <summary>
36+
/// The get basic catalogue.
37+
/// </summary>
38+
/// <param name="catalogueNodeId">The catalogueNodeId.</param>
39+
/// <returns>The <see cref="Task"/>.</returns>
40+
CatalogueNodeVersion GetBasicCatalogue(int catalogueNodeId);
41+
42+
/// <summary>
43+
/// The UpdateCatalogueAsync.
44+
/// </summary>
45+
/// <param name="userId">The userId.</param>
46+
/// <param name="vm">The catalogue view model.</param>
47+
/// <returns>The task.</returns>
48+
Task UpdateCatalogueAsync(int userId, CatalogueViewModel vm);
49+
50+
/// <summary>
51+
/// The UpdateCatalogueOwnerAsync.
52+
/// </summary>
53+
/// <param name="userId">The userId.</param>
54+
/// <param name="vm">The catalogue owner view model.</param>
55+
/// <returns>The task.</returns>
56+
Task UpdateCatalogueOwnerAsync(int userId, CatalogueOwnerViewModel vm);
57+
58+
/// <summary>
59+
/// The CreateCatalogueAsync.
60+
/// </summary>
61+
/// <param name="userId">The userId.</param>
62+
/// <param name="vm">The catalogue view model.</param>
63+
/// <returns>The catalogueNodeVersionId.</returns>
64+
Task<int> CreateCatalogueAsync(int userId, CatalogueViewModel vm);
65+
66+
/// <summary>
67+
/// Get Catlogue by reference.
68+
/// </summary>
69+
/// <param name="reference">The reference.</param>
70+
/// <returns>The CatalogueViewModel.</returns>
71+
Task<CatalogueViewModel> GetCatalogueAsync(string reference);
72+
73+
/// <summary>
74+
/// Get list of Restricted Catalogue AccessRequests for the supplied request.
75+
/// </summary>
76+
/// <param name="restrictedCatalogueAccessRequestsRequestViewModel">The restrictedCatalogueAccessRequestsRequestViewModel.</param>
77+
/// <returns>A RestrictedCatalogueAccessRequestsViewModel.</returns>
78+
List<RestrictedCatalogueAccessRequestViewModel> GetRestrictedCatalogueAccessRequests(RestrictedCatalogueAccessRequestsRequestViewModel restrictedCatalogueAccessRequestsRequestViewModel);
79+
80+
/// <summary>
81+
/// Get list of RestrictedCatalogueUsersRequestViewModel for the supplied request.
82+
/// </summary>
83+
/// <param name="restrictedCatalogueUsersRequestViewModel">The restrictedCatalogueUsersRequestViewModel.</param>
84+
/// <returns>A RestrictedCatalogueUsersViewModel.</returns>
85+
RestrictedCatalogueUsersViewModel GetRestrictedCatalogueUsers(RestrictedCatalogueUsersRequestViewModel restrictedCatalogueUsersRequestViewModel);
86+
87+
/// <summary>
88+
/// The ShowCatalogue.
89+
/// </summary>
90+
/// <param name="userId">The UserId.</param>
91+
/// <param name="nodeId">The NodeId.</param>
92+
/// <returns>The Task.</returns>
93+
Task ShowCatalogue(int userId, int nodeId);
94+
95+
/// <summary>
96+
/// Get Restricted Catalogue Summary for the supplied catalogue node id.
97+
/// </summary>
98+
/// <param name="catalogueNodeId">The catalogueNodeId.</param>
99+
/// <returns>A RestrictedCatalogueUsersViewModel.</returns>
100+
RestrictedCatalogueSummaryViewModel GetRestrictedCatalogueSummary(int catalogueNodeId);
101+
102+
/// <summary>
103+
/// Gets catalogues for dashboard based on type.
104+
/// </summary>
105+
/// <param name="dashboardType">The dashboard type.</param>
106+
/// <param name="pageNumber">The page Number.</param>
107+
/// <param name="userId">The userId.</param>
108+
/// <returns>Catalogue totals and records.</returns>
109+
(int TotalCount, List<DashboardCatalogueDto> Catalogues) GetCatalogues(string dashboardType, int pageNumber, int userId);
110+
111+
/// <summary>
112+
/// Check if a Catalogue with a specific name exists or not.
113+
/// </summary>
114+
/// <param name="name">The catalogue name.</param>
115+
/// <returns>True if the catalogue exists, otherwise false.</returns>
116+
Task<bool> ExistsAsync(string name);
117+
118+
/// <summary>
119+
/// Gets the Node Id for a particular catalogue name.
120+
/// </summary>
121+
/// <param name="catalogueName">The catalogue name.</param>
122+
/// <returns>The catalogue's node id.</returns>
123+
Task<int> GetNodeIdByCatalogueName(string catalogueName);
124+
125+
/// <summary>
126+
/// Gets the catalogues count in alphabet list.
127+
/// </summary>
128+
/// <param name="userId">The userId.</param>
129+
/// <returns>The catalogues alphabet count list.</returns>
130+
List<AllCatalogueAlphabetModel> GetAllCataloguesAlphaCount(int userId);
131+
132+
/// <summary>
133+
/// Gets catalogues based on filter character.
134+
/// </summary>
135+
/// <param name="pageSize">The pageSize.</param>
136+
/// <param name="filterChar">The filterChar.</param>
137+
/// <param name="userId">The userId.</param>
138+
/// <returns>The catalogues.</returns>
139+
Task<List<AllCatalogueViewModel>> GetAllCataloguesAsync(int pageSize, string filterChar, int userId);
140+
}
141+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy
2+
{
3+
using System.Collections.Generic;
4+
using System.Threading.Tasks;
5+
using LearningHub.Nhs.Models.Catalogue;
6+
using LearningHub.Nhs.Models.Entities.Hierarchy;
7+
using LearningHub.Nhs.Models.Enums;
8+
using LearningHub.Nhs.Models.Hierarchy;
9+
10+
/// <summary>
11+
/// The NodeResourceRepository interface.
12+
/// </summary>
13+
public interface INodeResourceRepository : IGenericRepository<NodeResource>
14+
{
15+
/// <summary>
16+
/// The get by resource id async.
17+
/// </summary>
18+
/// <param name="resourceId">The resource id.</param>
19+
/// <returns>The <see cref="Task"/>.</returns>
20+
Task<List<NodeResource>> GetByResourceIdAsync(int resourceId);
21+
22+
/// <summary>
23+
/// The get catalogue locations for resource.
24+
/// </summary>
25+
/// <param name="resourceId">The resource id.</param>
26+
/// <returns>The CatalogueLocationViewModel list.</returns>
27+
List<CatalogueLocationViewModel> GetCatalogueLocationsForResource(int resourceId);
28+
29+
/// <summary>
30+
/// GetResourcesAsync.
31+
/// </summary>
32+
/// <param name="nodeId">nodeId.</param>
33+
/// <param name="catalogueOrder">catalogueOrder.</param>
34+
/// <param name="offset">offset.</param>
35+
/// <returns>A <see cref="Task{TResult}"/> representing the result of the asynchronous operation.</returns>
36+
Task<CatalogueResourceResponseViewModel> GetResourcesAsync(int nodeId, CatalogueOrder catalogueOrder, int offset);
37+
38+
/// <summary>
39+
/// Get All published resources id.
40+
/// </summary>
41+
/// <returns>The <see cref="T:Task{IEnumerable{int}}"/>.</returns>
42+
Task<IEnumerable<int>> GetAllPublishedResourceAsync();
43+
44+
/// <summary>
45+
/// Creates or updates the NodeResource record for a draft resource in a node.
46+
/// </summary>
47+
/// <param name="nodeId">The nodeId.</param>
48+
/// <param name="resourceId">The resourceId.</param>
49+
/// <param name="userId">The userId.</param>
50+
/// <returns>The <see cref="T:Task{IEnumerable{int}}"/>.</returns>
51+
Task<int> CreateOrUpdateAsync(int nodeId, int resourceId, int userId);
52+
}
53+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace LearningHub.Nhs.Repository.Interface
2+
{
3+
using System.Threading.Tasks;
4+
using LearningHub.Nhs.Models.Entities;
5+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
6+
7+
/// <summary>
8+
/// The IRoadmapRepository.
9+
/// </summary>
10+
public interface IBookmarkRepository : IGenericRepository<UserBookmark>
11+
{
12+
/// <summary>
13+
/// The GetById.
14+
/// </summary>
15+
/// <param name="bookmarkId">The bookmarkId<see cref="int"/>.</param>
16+
/// <returns>The <see cref="Task{UserBookmark}"/>.</returns>
17+
Task<UserBookmark> GetById(int bookmarkId);
18+
19+
/// <summary>
20+
/// DeleteFolder.
21+
/// </summary>
22+
/// <param name="bookmarkId">bookmarkId.</param>
23+
/// <param name="userId">userId.</param>
24+
/// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns>
25+
Task DeleteFolder(int bookmarkId, int userId);
26+
}
27+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories
2+
{
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using LearningHub.Nhs.Models.Entities;
6+
7+
/// <summary>
8+
/// The GenericRepository interface.
9+
/// </summary>
10+
/// <typeparam name="TEntity">Imput type.</typeparam>
11+
public interface IGenericRepository<TEntity>
12+
where TEntity : EntityBase
13+
{
14+
/// <summary>
15+
/// The get all.
16+
/// </summary>
17+
/// <returns>The <see cref="IQueryable"/>.</returns>
18+
IQueryable<TEntity> GetAll();
19+
20+
/// <summary>
21+
/// The create async.
22+
/// </summary>
23+
/// <param name="userId">The user id.</param>
24+
/// <param name="entity">The entity.</param>
25+
/// <returns>The <see cref="Task"/>.</returns>
26+
Task<int> CreateAsync(int userId, TEntity entity);
27+
28+
/// <summary>
29+
/// The update async.
30+
/// </summary>
31+
/// <param name="userId">The user id.</param>
32+
/// <param name="entity">The entity.</param>
33+
/// <returns>The <see cref="Task"/>.</returns>
34+
Task UpdateAsync(int userId, TEntity entity);
35+
36+
/// <summary>
37+
/// The update.
38+
/// </summary>
39+
/// <param name="userId">The user id.</param>
40+
/// <param name="entity">The entity.</param>
41+
void Update(int userId, TEntity entity);
42+
}
43+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories
2+
{
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
using LearningHub.Nhs.Models.Entities;
7+
using LearningHub.Nhs.Models.Entities.Resource;
8+
9+
/// <summary>
10+
/// The ProviderRepository interface.
11+
/// </summary>
12+
public interface IProviderRepository : IGenericRepository<Provider>
13+
{
14+
/// <summary>
15+
/// The get by id async.
16+
/// </summary>
17+
/// <param name="id">The id.</param>
18+
/// <returns>The <see cref="Task"/>.</returns>
19+
Task<Provider> GetByIdAsync(int id);
20+
21+
/// <summary>
22+
/// The get by id async.
23+
/// </summary>
24+
/// <param name="id">The id.</param>
25+
/// <param name="includeChildren">The include children.</param>
26+
/// <returns>The <see cref="Task"/>.</returns>
27+
Task<Provider> GetByIdAsync(int id, bool includeChildren);
28+
29+
/// <summary>
30+
/// The get by user id async.
31+
/// </summary>
32+
/// <param name="userId">The user id.</param>
33+
/// <returns>The <see cref="Task"/>.</returns>
34+
IQueryable<Provider> GetProvidersByUserIdAsync(int userId);
35+
36+
/// <summary>
37+
/// The get by resource version id async.
38+
/// </summary>
39+
/// <param name="resourceVersionId">The resource version id.</param>
40+
/// <returns>The <see cref="Task"/>.</returns>
41+
IQueryable<Provider> GetProvidersByResourceIdAsync(int resourceVersionId);
42+
43+
/// <summary>
44+
/// The get by node version id async.
45+
/// </summary>
46+
/// <param name="nodeVersionId">The node version id.</param>
47+
/// <returns>The <see cref="Task"/>.</returns>
48+
IQueryable<Provider> GetProvidersByCatalogueIdAsync(int nodeVersionId);
49+
}
50+
}

OpenAPI/LearningHub.Nhs.OpenApi.Repositories.Interface/Repositories/IResourceRepository.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ public interface IResourceRepository
1515
/// </summary>
1616
/// <param name="resourceIds"><see cref="resourceIds"/>.</param>
1717
/// <returns>Resources with details.</returns>
18-
public Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> resourceIds);
18+
Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> resourceIds);
1919

2020
/// <summary>
2121
/// Gets resource references by their original resource reference Ids.
2222
/// </summary>
2323
/// <param name="originalResourceReferenceIds"><see cref="originalResourceReferenceIds"/>.</param>
2424
/// <returns>Resource references.</returns>
25-
public Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
25+
Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
2626
IEnumerable<int> originalResourceReferenceIds);
2727

2828
/// <summary>
@@ -37,6 +37,13 @@ public Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResou
3737
/// GetAchievedCertificatedResourceIds
3838
/// </summary>
3939
/// <param name="currentUserId"><see cref="currentUserId"/>.</param>
40-
public Task<List<int>> GetAchievedCertificatedResourceIds(int currentUserId);
40+
Task<List<int>> GetAchievedCertificatedResourceIds(int currentUserId);
41+
42+
/// <summary>
43+
/// The get by id async.
44+
/// </summary>
45+
/// <param name="id">The id.</param>
46+
/// <returns>The <see cref="Task"/>.</returns>
47+
Task<Resource> GetByIdAsync(int id);
4148
}
4249
}

0 commit comments

Comments
 (0)