Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
@@ -0,0 +1,18 @@
namespace LearningHub.Nhs.OpenApi.Models.Configuration
{
/// <summary>
/// The AzureBlobSettings.
/// </summary>
public class AzureBlobSettings
{
/// <summary>
/// Gets or sets the connectionString.
/// </summary>
public string ConnectionString { get; set; } = null!;

/// <summary>
/// Gets or sets the catalogue collection id.
/// </summary>
public string UploadContainer { get; set; } = null!;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace LearningHub.Nhs.OpenApi.Models.Configuration
{
/// <summary>
/// The AzureConfig.
/// </summary>
public class AzureConfig
{
/// <summary>
/// Gets or sets the azure blob settings.
/// </summary>
public AzureBlobSettings AzureBlobSettings { get; set; } = null!;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,10 @@ public class LearningHubConfig
/// Gets or sets <see cref="LaunchResourceEndpoint"/>.
/// </summary>
public string LaunchResourceEndpoint { get; set; } = null!;

/// <summary>
/// Gets or sets <see cref="ContentServerUrl"/>.
/// </summary>
public string ContentServerUrl { get; set; } = null!;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy
{
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Catalogue;
using LearningHub.Nhs.Models.Dashboard;
using LearningHub.Nhs.Models.Entities.Hierarchy;

/// <summary>
/// The ICatalogueNodeVersionRepository.
/// </summary>
public interface ICatalogueNodeVersionRepository : IGenericRepository<CatalogueNodeVersion>
{
/// <summary>
/// The get catalogues.
/// </summary>
/// <param name="catalogueIds">The catalogue ids.</param>
/// <returns>A <see cref="Task{TResult}"/> representing the result of the asynchronous operation.</returns>
Task<List<CatalogueNodeVersion>> GetCatalogues(List<int> catalogueIds);

/// <summary>
/// The get catalogues.
/// </summary>
/// <returns>The <see cref="Task"/>.</returns>
Task<List<CatalogueNodeVersion>> GetPublishedCatalogues();

/// <summary>
/// The get catalogues for user.
/// </summary>
/// <param name="userId">The userId.</param>
/// <returns>The <see cref="Task"/>.</returns>
IQueryable<CatalogueNodeVersion> GetPublishedCataloguesForUserAsync(int userId);

/// <summary>
/// The get basic catalogue.
/// </summary>
/// <param name="catalogueNodeId">The catalogueNodeId.</param>
/// <returns>The <see cref="Task"/>.</returns>
CatalogueNodeVersion GetBasicCatalogue(int catalogueNodeId);

/// <summary>
/// The UpdateCatalogueAsync.
/// </summary>
/// <param name="userId">The userId.</param>
/// <param name="vm">The catalogue view model.</param>
/// <returns>The task.</returns>
Task UpdateCatalogueAsync(int userId, CatalogueViewModel vm);

/// <summary>
/// The UpdateCatalogueOwnerAsync.
/// </summary>
/// <param name="userId">The userId.</param>
/// <param name="vm">The catalogue owner view model.</param>
/// <returns>The task.</returns>
Task UpdateCatalogueOwnerAsync(int userId, CatalogueOwnerViewModel vm);

/// <summary>
/// The CreateCatalogueAsync.
/// </summary>
/// <param name="userId">The userId.</param>
/// <param name="vm">The catalogue view model.</param>
/// <returns>The catalogueNodeVersionId.</returns>
Task<int> CreateCatalogueAsync(int userId, CatalogueViewModel vm);

/// <summary>
/// Get Catlogue by reference.
/// </summary>
/// <param name="reference">The reference.</param>
/// <returns>The CatalogueViewModel.</returns>
Task<CatalogueViewModel> GetCatalogueAsync(string reference);

/// <summary>
/// Get list of Restricted Catalogue AccessRequests for the supplied request.
/// </summary>
/// <param name="restrictedCatalogueAccessRequestsRequestViewModel">The restrictedCatalogueAccessRequestsRequestViewModel.</param>
/// <returns>A RestrictedCatalogueAccessRequestsViewModel.</returns>
List<RestrictedCatalogueAccessRequestViewModel> GetRestrictedCatalogueAccessRequests(RestrictedCatalogueAccessRequestsRequestViewModel restrictedCatalogueAccessRequestsRequestViewModel);

/// <summary>
/// Get list of RestrictedCatalogueUsersRequestViewModel for the supplied request.
/// </summary>
/// <param name="restrictedCatalogueUsersRequestViewModel">The restrictedCatalogueUsersRequestViewModel.</param>
/// <returns>A RestrictedCatalogueUsersViewModel.</returns>
RestrictedCatalogueUsersViewModel GetRestrictedCatalogueUsers(RestrictedCatalogueUsersRequestViewModel restrictedCatalogueUsersRequestViewModel);

/// <summary>
/// The ShowCatalogue.
/// </summary>
/// <param name="userId">The UserId.</param>
/// <param name="nodeId">The NodeId.</param>
/// <returns>The Task.</returns>
Task ShowCatalogue(int userId, int nodeId);

/// <summary>
/// Get Restricted Catalogue Summary for the supplied catalogue node id.
/// </summary>
/// <param name="catalogueNodeId">The catalogueNodeId.</param>
/// <returns>A RestrictedCatalogueUsersViewModel.</returns>
RestrictedCatalogueSummaryViewModel GetRestrictedCatalogueSummary(int catalogueNodeId);

/// <summary>
/// Gets catalogues for dashboard based on type.
/// </summary>
/// <param name="dashboardType">The dashboard type.</param>
/// <param name="pageNumber">The page Number.</param>
/// <param name="userId">The userId.</param>
/// <returns>Catalogue totals and records.</returns>
(int TotalCount, List<DashboardCatalogueDto> Catalogues) GetCatalogues(string dashboardType, int pageNumber, int userId);

/// <summary>
/// Check if a Catalogue with a specific name exists or not.
/// </summary>
/// <param name="name">The catalogue name.</param>
/// <returns>True if the catalogue exists, otherwise false.</returns>
Task<bool> ExistsAsync(string name);

/// <summary>
/// Gets the Node Id for a particular catalogue name.
/// </summary>
/// <param name="catalogueName">The catalogue name.</param>
/// <returns>The catalogue's node id.</returns>
Task<int> GetNodeIdByCatalogueName(string catalogueName);

/// <summary>
/// Gets the catalogues count in alphabet list.
/// </summary>
/// <param name="userId">The userId.</param>
/// <returns>The catalogues alphabet count list.</returns>
List<AllCatalogueAlphabetModel> GetAllCataloguesAlphaCount(int userId);

/// <summary>
/// Gets catalogues based on filter character.
/// </summary>
/// <param name="pageSize">The pageSize.</param>
/// <param name="filterChar">The filterChar.</param>
/// <param name="userId">The userId.</param>
/// <returns>The catalogues.</returns>
Task<List<AllCatalogueViewModel>> GetAllCataloguesAsync(int pageSize, string filterChar, int userId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories.Hierarchy
{
using System.Collections.Generic;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Catalogue;
using LearningHub.Nhs.Models.Entities.Hierarchy;
using LearningHub.Nhs.Models.Enums;
using LearningHub.Nhs.Models.Hierarchy;

/// <summary>
/// The NodeResourceRepository interface.
/// </summary>
public interface INodeResourceRepository : IGenericRepository<NodeResource>
{
/// <summary>
/// The get by resource id async.
/// </summary>
/// <param name="resourceId">The resource id.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task<List<NodeResource>> GetByResourceIdAsync(int resourceId);

/// <summary>
/// The get catalogue locations for resource.
/// </summary>
/// <param name="resourceId">The resource id.</param>
/// <returns>The CatalogueLocationViewModel list.</returns>
List<CatalogueLocationViewModel> GetCatalogueLocationsForResource(int resourceId);

/// <summary>
/// GetResourcesAsync.
/// </summary>
/// <param name="nodeId">nodeId.</param>
/// <param name="catalogueOrder">catalogueOrder.</param>
/// <param name="offset">offset.</param>
/// <returns>A <see cref="Task{TResult}"/> representing the result of the asynchronous operation.</returns>
Task<CatalogueResourceResponseViewModel> GetResourcesAsync(int nodeId, CatalogueOrder catalogueOrder, int offset);

/// <summary>
/// Get All published resources id.
/// </summary>
/// <returns>The <see cref="T:Task{IEnumerable{int}}"/>.</returns>
Task<IEnumerable<int>> GetAllPublishedResourceAsync();

/// <summary>
/// Creates or updates the NodeResource record for a draft resource in a node.
/// </summary>
/// <param name="nodeId">The nodeId.</param>
/// <param name="resourceId">The resourceId.</param>
/// <param name="userId">The userId.</param>
/// <returns>The <see cref="T:Task{IEnumerable{int}}"/>.</returns>
Task<int> CreateOrUpdateAsync(int nodeId, int resourceId, int userId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
namespace LearningHub.Nhs.Repository.Interface
{
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Entities;
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;

/// <summary>
/// The IRoadmapRepository.
/// </summary>
public interface IBookmarkRepository : IGenericRepository<UserBookmark>
{
/// <summary>
/// The GetById.
/// </summary>
/// <param name="bookmarkId">The bookmarkId<see cref="int"/>.</param>
/// <returns>The <see cref="Task{UserBookmark}"/>.</returns>
Task<UserBookmark> GetById(int bookmarkId);

/// <summary>
/// DeleteFolder.
/// </summary>
/// <param name="bookmarkId">bookmarkId.</param>
/// <param name="userId">userId.</param>
/// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns>
Task DeleteFolder(int bookmarkId, int userId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories
{
using System.Linq;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Entities;

/// <summary>
/// The GenericRepository interface.
/// </summary>
/// <typeparam name="TEntity">Imput type.</typeparam>
public interface IGenericRepository<TEntity>
where TEntity : EntityBase
{
/// <summary>
/// The get all.
/// </summary>
/// <returns>The <see cref="IQueryable"/>.</returns>
IQueryable<TEntity> GetAll();

/// <summary>
/// The create async.
/// </summary>
/// <param name="userId">The user id.</param>
/// <param name="entity">The entity.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task<int> CreateAsync(int userId, TEntity entity);

/// <summary>
/// The update async.
/// </summary>
/// <param name="userId">The user id.</param>
/// <param name="entity">The entity.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task UpdateAsync(int userId, TEntity entity);

/// <summary>
/// The update.
/// </summary>
/// <param name="userId">The user id.</param>
/// <param name="entity">The entity.</param>
void Update(int userId, TEntity entity);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories
{
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Entities;
using LearningHub.Nhs.Models.Entities.Resource;

/// <summary>
/// The ProviderRepository interface.
/// </summary>
public interface IProviderRepository : IGenericRepository<Provider>
{
/// <summary>
/// The get by id async.
/// </summary>
/// <param name="id">The id.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task<Provider> GetByIdAsync(int id);

/// <summary>
/// The get by id async.
/// </summary>
/// <param name="id">The id.</param>
/// <param name="includeChildren">The include children.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task<Provider> GetByIdAsync(int id, bool includeChildren);

/// <summary>
/// The get by user id async.
/// </summary>
/// <param name="userId">The user id.</param>
/// <returns>The <see cref="Task"/>.</returns>
IQueryable<Provider> GetProvidersByUserIdAsync(int userId);

/// <summary>
/// The get by resource version id async.
/// </summary>
/// <param name="resourceVersionId">The resource version id.</param>
/// <returns>The <see cref="Task"/>.</returns>
IQueryable<Provider> GetProvidersByResourceIdAsync(int resourceVersionId);

/// <summary>
/// The get by node version id async.
/// </summary>
/// <param name="nodeVersionId">The node version id.</param>
/// <returns>The <see cref="Task"/>.</returns>
IQueryable<Provider> GetProvidersByCatalogueIdAsync(int nodeVersionId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ public interface IResourceRepository
/// </summary>
/// <param name="resourceIds"><see cref="resourceIds"/>.</param>
/// <returns>Resources with details.</returns>
public Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> resourceIds);
Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> resourceIds);

/// <summary>
/// Gets resource references by their original resource reference Ids.
/// </summary>
/// <param name="originalResourceReferenceIds"><see cref="originalResourceReferenceIds"/>.</param>
/// <returns>Resource references.</returns>
public Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
IEnumerable<int> originalResourceReferenceIds);

/// <summary>
Expand All @@ -37,6 +37,13 @@ public Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResou
/// GetAchievedCertificatedResourceIds
/// </summary>
/// <param name="currentUserId"><see cref="currentUserId"/>.</param>
public Task<List<int>> GetAchievedCertificatedResourceIds(int currentUserId);
Task<List<int>> GetAchievedCertificatedResourceIds(int currentUserId);

/// <summary>
/// The get by id async.
/// </summary>
/// <param name="id">The id.</param>
/// <returns>The <see cref="Task"/>.</returns>
Task<Resource> GetByIdAsync(int id);
}
}
Loading
Loading