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 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) catch (Exception ex)
{ {
@ -82,7 +82,7 @@ namespace ManagerService.Controllers
_myInfoMateDbContext.SaveChanges(); _myInfoMateDbContext.SaveChanges();
return new OkObjectResult(applicationInstance.ToDTO()); return new OkObjectResult(applicationInstance.ToDTO(_myInfoMateDbContext));
} }
catch (ArgumentNullException ex) catch (ArgumentNullException ex)
{ {
@ -114,7 +114,7 @@ namespace ManagerService.Controllers
if (updatedApplicationInstanceDTO == null) if (updatedApplicationInstanceDTO == null)
throw new ArgumentNullException("application instance param is 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) if (applicationInstance == null)
throw new KeyNotFoundException("application instance does not exist"); throw new KeyNotFoundException("application instance does not exist");
@ -122,7 +122,7 @@ namespace ManagerService.Controllers
applicationInstance = applicationInstance.FromDTO(updatedApplicationInstanceDTO); applicationInstance = applicationInstance.FromDTO(updatedApplicationInstanceDTO);
_myInfoMateDbContext.SaveChanges(); _myInfoMateDbContext.SaveChanges();
return new OkObjectResult(applicationInstance.ToDTO()); return new OkObjectResult(applicationInstance.ToDTO(_myInfoMateDbContext));
} }
catch (ArgumentNullException ex) catch (ArgumentNullException ex)
{ {

View File

@ -78,7 +78,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList(); 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) catch (KeyNotFoundException ex)
{ {
@ -125,7 +125,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList(); 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) catch (ArgumentNullException ex)
{ {
@ -173,7 +173,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList(); 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) catch (ArgumentNullException ex)
{ {
@ -210,7 +210,7 @@ namespace ManagerService.Controllers
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList(); 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) catch (KeyNotFoundException ex)
{ {

View File

@ -2,10 +2,10 @@
using ManagerService.Data.SubSection; using ManagerService.Data.SubSection;
using ManagerService.DTOs; using ManagerService.DTOs;
using ManagerService.Services; using ManagerService.Services;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace ManagerService.Data 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 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() return new ApplicationInstanceDTO()
{ {
id = Id, id = Id,
@ -64,7 +72,7 @@ namespace ManagerService.Data
layoutMainPage = LayoutMainPage, layoutMainPage = LayoutMainPage,
languages = Languages, languages = Languages,
sectionEventId = SectionEventId, 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.Serialize(v, options),
v => JsonSerializer.Deserialize<List<TranslationDTO>>(v, options)); v => JsonSerializer.Deserialize<List<TranslationDTO>>(v, options));
modelBuilder.Entity<Section>()
.Property<string>("Discriminator")
.HasMaxLength(50);
modelBuilder.Entity<Section>() modelBuilder.Entity<Section>()
.HasDiscriminator<string>("Discriminator") .HasDiscriminator<string>("Discriminator")
.HasValue<Section>("Base") .HasValue<Section>("Base")
.HasValue<SectionAgenda>("Agenda") .HasValue<SectionAgenda>("Agenda")
.HasValue<SectionArticle>("Article") .HasValue<SectionArticle>("Article")
.HasValue<SectionEvent>("Event")
.HasValue<SectionMap>("Map") .HasValue<SectionMap>("Map")
.HasValue<SectionMenu>("Menu") .HasValue<SectionMenu>("Menu")
.HasValue<SectionPdf>("PDF") .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") b.Property<string>("Discriminator")
.IsRequired() .IsRequired()
.HasMaxLength(13) .HasMaxLength(50)
.HasColumnType("character varying(13)"); .HasColumnType("character varying(50)");
b.Property<string>("ImageId") b.Property<string>("ImageId")
.HasColumnType("text"); .HasColumnType("text");
@ -837,7 +837,7 @@ namespace ManagerService.Migrations
b.Property<DateTime>("StartDate") b.Property<DateTime>("StartDate")
.HasColumnType("timestamp with time zone"); .HasColumnType("timestamp with time zone");
b.HasDiscriminator().HasValue("SectionEvent"); b.HasDiscriminator().HasValue("Event");
}); });
modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b => modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b =>

View File

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