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
11 changes: 4 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,20 @@ obj
/.cache_ggshield
/AdminUI/LearningHub.Nhs.AdminUI/appsettings.Development.json
/AdminUI/LearningHub.Nhs.AdminUI/node_modules
/AdminUI/LearningHub.Nhs.AdminUI/wwwroot/js/bundle
/AdminUI/LearningHub.Nhs.AdminUI/wwwroot/css
/AdminUI/LearningHub.Nhs.AdminUI/web.config
/AdminUI/LearningHub.Nhs.AdminUI/internal-nlog-lhadminui.txt
/WebAPI/LearningHub.Nhs.API/internal-nlog-lhapi.txt
/WebAPI/LearningHub.Nhs.API/web.config
/AdminUI/LearningHub.Nhs.AdminUI/yarn.lock
/AdminUI/LearningHub.Nhs.AdminUI/Properties/launchSettings.json
/AdminUI/LearningHub.Nhs.AdminUI/web.config
/AdminUI/LearningHub.Nhs.AdminUI/Properties/launchSettings.json
/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj.user
/WebAPI/LearningHub.Nhs.API/internal-nlog-lhapi.txt
/WebAPI/LearningHub.Nhs.API/web.config
/WebAPI/LearningHub.Nhs.API/Properties/launchSettings.json
/WebAPI/LearningHub.Nhs.API/appsettings.Development.json
/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.dbmdl
/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.jfm
/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Database/LearningHub.Nhs.Migration.Staging.Database.dbmdl
/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Database/LearningHub.Nhs.Migration.Staging.Database.jfm
/LearningHub.Nhs.WebUI.AutomatedUiTests/appsettings.Development.json
/WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj.user
/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj.user
/OpenAPI/LearningHub.Nhs.OpenApi/appsettings.Development.json
/OpenAPI/LearningHub.Nhs.OpenApi/web.config
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="LearningHub.Nhs.Models" Version="2.1.1" />
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.33" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.13.0" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
namespace LearningHub.Nhs.OpenApi.Models.ViewModels
{
using LearningHub.Nhs.Models.Entities.Activity;
using System.Collections.Generic;


/// <summary>
/// Class.
/// </summary>
Expand All @@ -23,20 +25,25 @@ public ResourceMetadataViewModel()
/// <param name="references"><see cref="References"/>.</param>
/// <param name="resourceType"><see cref="ResourceType"/>.</param>
/// <param name="rating"><see cref="Rating"/>.</param>
/// <param name="userSummaryActivityStatuses"><see cref="UserSummaryActivityStatuses"/>.</param>
public ResourceMetadataViewModel(
int resourceId,
string title,
string description,
List<ResourceReferenceViewModel> references,
string resourceType,
decimal rating)
int? majorVersion,
decimal rating,
List<MajorVersionIdActivityStatusDescription> userSummaryActivityStatuses)
{
this.ResourceId = resourceId;
this.Title = title;
this.Description = description;
this.References = references;
this.ResourceType = resourceType;
this.MajorVersion = majorVersion;
this.Rating = rating;
this.UserSummaryActivityStatuses = userSummaryActivityStatuses;
}

/// <summary>
Expand Down Expand Up @@ -64,9 +71,20 @@ public ResourceMetadataViewModel(
/// </summary>
public string ResourceType { get; set; }

/// <summary>
/// Gets or sets <see cref="MajorVersion"/>.
/// </summary>
public int? MajorVersion { get; set; }


/// <summary>
/// Gets or sets <see cref="Rating"/>.
/// </summary>
public decimal Rating { get; set; }

/// <summary>
/// Gets or sets <see cref="UserSummaryActivityStatuses"/>.
/// </summary>
public List<MajorVersionIdActivityStatusDescription> UserSummaryActivityStatuses { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
using LearningHub.Nhs.Models.Entities.Activity;
using System.Collections.Generic;

namespace LearningHub.Nhs.OpenApi.Models.ViewModels
{
/// <summary>
Expand All @@ -14,26 +17,32 @@ public class ResourceReferenceWithResourceDetailsViewModel
/// <param name="description"><see cref="Description"/>.</param>
/// <param name="catalogueViewModel"><see cref="Catalogue"/>.</param>
/// <param name="resourceType"><see cref="ResourceType"/>.</param>
/// <param name="majorVersion"></param>
/// <param name="rating"><see cref="Rating"/>.</param>
/// <param name="link"><see cref="Link"/>.</param>
/// <param name="userSummaryActivityStatuses"></param>
public ResourceReferenceWithResourceDetailsViewModel(
int resourceId,
int refId,
string title,
string description,
CatalogueViewModel catalogueViewModel,
string resourceType,
int? majorVersion,
decimal rating,
string link)
string link,
List<MajorVersionIdActivityStatusDescription> userSummaryActivityStatuses)
{
this.ResourceId = resourceId;
this.RefId = refId;
this.Title = title;
this.Description = description;
this.Catalogue = catalogueViewModel;
this.MajorVersion = majorVersion;
this.ResourceType = resourceType;
this.Rating = rating;
this.Link = link;
this.UserSummaryActivityStatuses = userSummaryActivityStatuses;
}

/// <summary>
Expand Down Expand Up @@ -66,14 +75,27 @@ public ResourceReferenceWithResourceDetailsViewModel(
/// </summary>
public string ResourceType { get; }


/// <summary>
/// Gets <see cref="MajorVersion"/>.
/// </summary>
public int? MajorVersion { get; }

/// <summary>
/// Gets <see cref="Rating"/>.
/// </summary>
///

public decimal Rating { get; }

/// <summary>
/// Gets <see cref="Link"/>.
/// </summary>
public string Link { get; }

/// <summary>
/// Gets <see cref="UserSummaryActivityStatuses"/>.
/// </summary>
public List<MajorVersionIdActivityStatusDescription> UserSummaryActivityStatuses { get; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ namespace LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories
{
using System.Collections.Generic;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Entities.Activity;
using LearningHub.Nhs.Models.Entities.Resource;

/// <summary>
Expand All @@ -23,5 +24,13 @@ public interface IResourceRepository
/// <returns>Resource references.</returns>
public Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
IEnumerable<int> originalResourceReferenceIds);

/// <summary>
/// Gets resource activity for resourceReferenceIds and userIds.
/// </summary>
/// <param name="resourceReferenceIds"><see cref="resourceReferenceIds"/>.</param>
/// <param name="userIds"></param>
/// <returns>ResourceActivityDTO.</returns>
Task<IEnumerable<ResourceActivityDTO>> GetResourceActivityPerResourceMajorVersion(IEnumerable<int>? resourceReferenceIds, IEnumerable<int>? userIds);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,11 @@ public LearningHubDbContext(LearningHubDbContextOptions options)
/// </summary>
public virtual DbSet<FileChunkDetail> FileChunkDetail { get; set; }

/// <summary>
/// Gets or sets the ResourceActivityDto. These are not entities. They are returned from the [activity].[GetResourceActivityPerResourceMajorVersion] stored proc..
/// </summary>
public virtual DbSet<ResourceActivityDTO> ResourceActivityDTO { get; set; }

/// <summary>
/// Gets or sets the RecentlyAddedResources. These are not entities. They are returned from the [resources].[GetRecentlyAddedResources] stored proc..
/// </summary>
Expand All @@ -312,14 +317,14 @@ public LearningHubDbContext(LearningHubDbContextOptions options)
public virtual DbSet<DashboardResourceDto> DashboardResourceDto { get; set; }

/// <summary>
/// Gets or sets the ScormContentDetailsViewModel.
/// Gets or sets the ExternalContentDetailsViewModel.
/// </summary>
public virtual DbSet<ScormContentDetailsViewModel> ScormContentDetailsViewModel { get; set; }
public virtual DbSet<ExternalContentDetailsViewModel> ExternalContentDetailsViewModel { get; set; }

/// <summary>
/// Gets or sets the ScormContentServerViewModel.
/// Gets or sets the ContentServerViewModel.
/// </summary>
public virtual DbSet<ScormContentServerViewModel> ScormContentServerViewModel { get; set; }
public virtual DbSet<ContentServerViewModel> ContentServerViewModel { get; set; }

/// <summary>
/// Gets or sets the DashboardCatalogueDto
Expand Down Expand Up @@ -520,12 +525,12 @@ public LearningHubDbContext(LearningHubDbContextOptions options)
/// <summary>
/// Gets or sets the whole slide image annotation.
/// </summary>
public virtual DbSet<WholeSlideImageAnnotation> WholeSlideImageAnnotation { get; set; }
public virtual DbSet<ImageAnnotation> ImageAnnotation { get; set; }

/// <summary>
/// Gets or sets the whole slide image annotation mark.
/// </summary>
public virtual DbSet<WholeSlideImageAnnotationMark> WholeSlideImageAnnotationMark { get; set; }
public virtual DbSet<ImageAnnotationMark> ImageAnnotationMark { get; set; }

/// <summary>
/// Gets or sets the media block.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ public static void AddLearningHubMappings(this IServiceCollection services, ICon
services.AddSingleton<IEntityTypeMap, WholeSlideImageBlockMap>();
services.AddSingleton<IEntityTypeMap, WholeSlideImageBlockItemMap>();
services.AddSingleton<IEntityTypeMap, WholeSlideImageMap>();
services.AddSingleton<IEntityTypeMap, WholeSlideImageAnnotationMap>();
services.AddSingleton<IEntityTypeMap, WholeSlideImageAnnotationMarkMap>();
services.AddSingleton<IEntityTypeMap, ImageAnnotationMap>();
services.AddSingleton<IEntityTypeMap, ImageAnnotationMarkMap>();
services.AddSingleton<IEntityTypeMap, WholeSlideImageFileMap>();
services.AddSingleton<IEntityTypeMap, UrlRewritingMap>();
services.AddSingleton<IEntityTypeMap, ResourceSyncMap>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ protected override void InternalMap(EntityTypeBuilder<PageSectionDetail> entity)
{
entity.ToTable("PageSectionDetail", "content");

entity.Property(e => e.AssetPositionId).HasDefaultValueSql("((2))");

entity.Property(e => e.BackgroundColour).HasMaxLength(20);

entity.Property(e => e.Description).HasMaxLength(512);
Expand All @@ -31,7 +29,7 @@ protected override void InternalMap(EntityTypeBuilder<PageSectionDetail> entity)

entity.Property(e => e.TextColour).HasMaxLength(20);

entity.Property(e => e.Title).HasMaxLength(128);
entity.Property(e => e.SectionTitle).HasMaxLength(128);

entity.Property(e => e.DeletePending).IsRequired(false);

Expand Down
4 changes: 0 additions & 4 deletions OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Map/LogMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@ protected void InternalMap(EntityTypeBuilder<Log> modelBuilder)
modelBuilder.Property(e => e.UserId)
.HasColumnName("UserId");

modelBuilder.HasOne(d => d.User)
.WithMany(p => p.Logs)
.HasForeignKey(d => d.UserId)
.OnDelete(DeleteBehavior.ClientSetNull);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
/// <summary>
/// The whole slide image annotation map.
/// </summary>
public class WholeSlideImageAnnotationMap : BaseEntityMap<WholeSlideImageAnnotation>
public class ImageAnnotationMap : BaseEntityMap<ImageAnnotation>
{
/// <summary>
/// The internal map.
/// </summary>
/// <param name="modelBuilder">
/// The model builder.
/// </param>
protected override void InternalMap(EntityTypeBuilder<WholeSlideImageAnnotation> modelBuilder)
protected override void InternalMap(EntityTypeBuilder<ImageAnnotation> modelBuilder)
{
modelBuilder.ToTable("WholeSlideImageAnnotation", "resources");
modelBuilder.ToTable("ImageAnnotation", "resources");

modelBuilder.HasOne(a => a.WholeSlideImage)
.WithMany(i => i.WholeSlideImageAnnotations)
.WithMany(i => i.ImageAnnotations)
.HasForeignKey(a => a.WholeSlideImageId)
.OnDelete(DeleteBehavior.Cascade)
.HasConstraintName("FK_WholeSlideImageAnnotation_WholeSlideImageId");
.HasConstraintName("FK_ImageAnnotation_WholeSlideImageId");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
/// <summary>
/// The whole slide image annotation map.
/// </summary>
public class WholeSlideImageAnnotationMarkMap : BaseEntityMap<WholeSlideImageAnnotationMark>
public class ImageAnnotationMarkMap : BaseEntityMap<ImageAnnotationMark>
{
/// <summary>
/// The internal map.
/// </summary>
/// <param name="modelBuilder">
/// The model builder.
/// </param>
protected override void InternalMap(EntityTypeBuilder<WholeSlideImageAnnotationMark> modelBuilder)
protected override void InternalMap(EntityTypeBuilder<ImageAnnotationMark> modelBuilder)
{
modelBuilder.ToTable("WholeSlideImageAnnotationMark", "resources");
modelBuilder.ToTable("ImageAnnotationMark", "resources");

modelBuilder.HasOne(a => a.WholeSlideImageAnnotation)
.WithMany(i => i.WholeSlideImageAnnotationMarks)
.HasForeignKey(a => a.WholeSlideImageAnnotationId)
modelBuilder.HasOne(a => a.ImageAnnotation)
.WithMany(i => i.ImageAnnotationMarks)
.HasForeignKey(a => a.ImageAnnotationId)
.OnDelete(DeleteBehavior.Cascade)
.HasConstraintName("FK_WholeSlideImageAnnotationMark_WholeSlideImageAnnotationId");
.HasConstraintName("FK_ImageAnnotationMark_ImageAnnotationId");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ protected override void InternalMap(EntityTypeBuilder<ResourceVersion> modelBuil
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_ResourceVersion_Resource");

modelBuilder.Property(e => e.ResourceAccessibilityEnum).HasColumnName("ResourceAccessibilityId")
.HasConversion<int>();

modelBuilder.Property(e => e.VersionStatusEnum).HasColumnName("VersionStatusId")
.HasConversion<int>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
namespace LearningHub.Nhs.OpenApi.Repositories.Repositories
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LearningHub.Nhs.Models.Entities.Activity;
using LearningHub.Nhs.Models.Entities.Resource;
using LearningHub.Nhs.OpenApi.Repositories.EntityFramework;
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;

/// <inheritdoc />
Expand Down Expand Up @@ -69,5 +72,35 @@ public async Task<IEnumerable<ResourceReference>> GetResourceReferencesByOrigina
.ThenInclude(r => r.ResourceVersionRatingSummary)
.ToListAsync();
}

/// </summary>
/// <param name="resourceReferenceIds"></param>
/// <param name="userIds"></param>
/// <param name="originalResourceReferenceIds">.</param>
/// <returns>A <see cref="Task{ResourceReference}"/> representing the result of the asynchronous operation.</returns>
public async Task<IEnumerable<ResourceActivityDTO>> GetResourceActivityPerResourceMajorVersion(
IEnumerable<int>? resourceReferenceIds, IEnumerable<int>? userIds)
{
var resourceIdsParam = resourceReferenceIds != null
? string.Join(",", resourceReferenceIds)
: null;

var userIdsParam = userIds != null
? string.Join(",", userIds)
: null;

var resourceIdsParameter = new SqlParameter("@p0", resourceIdsParam ?? (object)DBNull.Value);
var userIdsParameter = new SqlParameter("@p1", userIdsParam ?? (object)DBNull.Value);

List<ResourceActivityDTO> resourceActivityDTOs = await dbContext.ResourceActivityDTO
.FromSqlRaw(
"[activity].[GetResourceActivityPerResourceMajorVersion] @p0, @p1",
resourceIdsParameter,
userIdsParameter)
.AsNoTracking()
.ToListAsync<ResourceActivityDTO>();

return resourceActivityDTOs;
}
}
}
Loading