Updated applicationInstance for sectionEvent in dto

This commit is contained in:
Thomas Fransolet 2025-10-17 23:21:10 +02:00
parent 8f16f1570f
commit e70b574091
8 changed files with 1298 additions and 16 deletions

View File

@ -48,9 +48,9 @@ namespace ManagerService.Controllers
{
try
{
List<ApplicationInstance> applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instanceId).ToList();
List<ApplicationInstance> applicationInstances = _myInfoMateDbContext.ApplicationInstances.Include(s => s.SectionEvent).Where(ai => ai.InstanceId == instanceId).ToList();
return new OkObjectResult(applicationInstances.Select(ai => ai.ToDTO()).OrderBy(c => c.appType));
return new OkObjectResult(applicationInstances.Select(ai => ai.ToDTO(_myInfoMateDbContext)).OrderBy(c => c.appType));
}
catch (Exception ex)
{
@ -82,7 +82,7 @@ namespace ManagerService.Controllers
_myInfoMateDbContext.SaveChanges();
return new OkObjectResult(applicationInstance.ToDTO());
return new OkObjectResult(applicationInstance.ToDTO(_myInfoMateDbContext));
}
catch (ArgumentNullException ex)
{
@ -114,7 +114,7 @@ namespace ManagerService.Controllers
if (updatedApplicationInstanceDTO == null)
throw new ArgumentNullException("application instance param is null");
ApplicationInstance applicationInstance = _myInfoMateDbContext.ApplicationInstances.FirstOrDefault(ai => ai.Id == updatedApplicationInstanceDTO.id);
ApplicationInstance applicationInstance = _myInfoMateDbContext.ApplicationInstances.Include(s => s.SectionEvent).FirstOrDefault(ai => ai.Id == updatedApplicationInstanceDTO.id);
if (applicationInstance == null)
throw new KeyNotFoundException("application instance does not exist");
@ -122,7 +122,7 @@ namespace ManagerService.Controllers
applicationInstance = applicationInstance.FromDTO(updatedApplicationInstanceDTO);
_myInfoMateDbContext.SaveChanges();
return new OkObjectResult(applicationInstance.ToDTO());
return new OkObjectResult(applicationInstance.ToDTO(_myInfoMateDbContext));
}
catch (ArgumentNullException ex)
{

View File

@ -78,7 +78,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO(_myInfoMateDbContext)).ToList()));
}
catch (KeyNotFoundException ex)
{
@ -125,7 +125,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO(_myInfoMateDbContext)).ToList()));
}
catch (ArgumentNullException ex)
{
@ -173,7 +173,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO(_myInfoMateDbContext)).ToList()));
}
catch (ArgumentNullException ex)
{
@ -210,7 +210,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO(_myInfoMateDbContext)).ToList()));
}
catch (KeyNotFoundException ex)
{

View File

@ -2,10 +2,10 @@
using ManagerService.Data.SubSection;
using ManagerService.DTOs;
using ManagerService.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace ManagerService.Data
{
@ -47,8 +47,16 @@ namespace ManagerService.Data
public SectionEvent? SectionEvent { get; set; } // => To Display in large a event with countdown (in mobile app).
public ApplicationInstanceDTO ToDTO()
public ApplicationInstanceDTO ToDTO(MyInfoMateDbContext myInfoMateDbContext)
{
SectionEventDTO sectionEventDTO = null;
if (SectionEventId != null)
{
SectionEvent = myInfoMateDbContext.Sections.OfType<SectionEvent>().FirstOrDefault(s => s.Id == SectionEventId);
sectionEventDTO = SectionEvent != null ? SectionFactory.ToDTO(SectionEvent) as SectionEventDTO : null;
}
return new ApplicationInstanceDTO()
{
id = Id,
@ -64,7 +72,7 @@ namespace ManagerService.Data
layoutMainPage = LayoutMainPage,
languages = Languages,
sectionEventId = SectionEventId,
sectionEventDTO = SectionEvent != null ? SectionFactory.ToDTO(SectionEvent) as SectionEventDTO : null
sectionEventDTO = sectionEventDTO
};
}

View File

@ -56,11 +56,16 @@ namespace ManagerService.Data
v => JsonSerializer.Serialize(v, options),
v => JsonSerializer.Deserialize<List<TranslationDTO>>(v, options));
modelBuilder.Entity<Section>()
.Property<string>("Discriminator")
.HasMaxLength(50);
modelBuilder.Entity<Section>()
.HasDiscriminator<string>("Discriminator")
.HasValue<Section>("Base")
.HasValue<SectionAgenda>("Agenda")
.HasValue<SectionArticle>("Article")
.HasValue<SectionEvent>("Event")
.HasValue<SectionMap>("Map")
.HasValue<SectionMenu>("Menu")
.HasValue<SectionPdf>("PDF")

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ManagerService.Migrations
{
/// <inheritdoc />
public partial class AddedSectionEventDiscriminator : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Discriminator",
table: "Sections",
type: "character varying(50)",
maxLength: 50,
nullable: false,
oldClrType: typeof(string),
oldType: "character varying(13)",
oldMaxLength: 13);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Discriminator",
table: "Sections",
type: "character varying(13)",
maxLength: 13,
nullable: false,
oldClrType: typeof(string),
oldType: "character varying(50)",
oldMaxLength: 50);
}
}
}

View File

@ -335,8 +335,8 @@ namespace ManagerService.Migrations
b.Property<string>("Discriminator")
.IsRequired()
.HasMaxLength(13)
.HasColumnType("character varying(13)");
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<string>("ImageId")
.HasColumnType("text");
@ -837,7 +837,7 @@ namespace ManagerService.Migrations
b.Property<DateTime>("StartDate")
.HasColumnType("timestamp with time zone");
b.HasDiscriminator().HasValue("SectionEvent");
b.HasDiscriminator().HasValue("Event");
});
modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b =>

View File

@ -188,7 +188,7 @@ namespace ManagerService
app.UseCors(
#if DEBUG
options => options
.SetIsOriginAllowed(origin => string.IsNullOrEmpty(origin) || origin == "http://localhost:59952")
.SetIsOriginAllowed(origin => string.IsNullOrEmpty(origin) || origin == "http://localhost:57209")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()