misc + fixs

This commit is contained in:
Thomas Fransolet 2025-08-14 16:30:03 +02:00
parent 5aabf35f9d
commit c8c5902292
7 changed files with 30 additions and 11 deletions

View File

@ -17,7 +17,7 @@ namespace ManagerService.Controllers
{
[Authorize] // TODO Add ROLES (Roles = "Admin")
[ApiController, Route("api/[controller]")]
[OpenApiTag("Instance", Description = "Application instance management")]
[OpenApiTag("ApplicationInstance", Description = "Application instance management")]
public class ApplicationInstanceController : ControllerBase
{
private readonly MyInfoMateDbContext _myInfoMateDbContext;
@ -190,13 +190,12 @@ namespace ManagerService.Controllers
[ProducesResponseType(typeof(List<AppConfigurationLinkDTO>), 200)]
[ProducesResponseType(typeof(string), 500)]
[HttpGet("{applicationInstanceId}/application-link")]
public ObjectResult GetAllApplicationLinkFromApplicationInstance([FromQuery] string applicationInstanceId)
public ObjectResult GetAllApplicationLinkFromApplicationInstance(string applicationInstanceId)
{
try
{
List<AppConfigurationLink> appConfigurationLinks = _myInfoMateDbContext.AppConfigurationLinks.Where(acl => acl.ApplicationInstanceId == applicationInstanceId).ToList();
return new OkObjectResult(appConfigurationLinks.Select(acl => acl.ToDTO()).OrderBy(acl => acl.order));
List<AppConfigurationLink> appConfigurationLinks = _myInfoMateDbContext.AppConfigurationLinks.Include(acl => acl.Configuration).Where(acl => acl.ApplicationInstanceId == applicationInstanceId).ToList();
return new OkObjectResult(appConfigurationLinks.Select(acl => acl.ToDTO()).OrderBy(acl => acl.order).ToList());
}
catch (Exception ex)
{
@ -234,6 +233,10 @@ namespace ManagerService.Controllers
if (configuration == null)
throw new KeyNotFoundException("This configuration was not found");
// Check if already linked
if (_myInfoMateDbContext.AppConfigurationLinks.Any(acl => acl.ConfigurationId == appConfigurationLinkDTO.configurationId && acl.ApplicationInstanceId == applicationInstanceId))
return new ConflictObjectResult("This configuration is already linked to this applicationInstance");
// Todo add some verification ?
AppConfigurationLink appConfigurationLink = new AppConfigurationLink().FromDTO(appConfigurationLinkDTO);
appConfigurationLink.Id = idService.GenerateHexId();

View File

@ -76,7 +76,9 @@ namespace ManagerService.Controllers
if (instance == null)
throw new KeyNotFoundException("This instance was not found");
return new OkObjectResult(instance.ToDTO());
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
}
catch (KeyNotFoundException ex)
{
@ -121,7 +123,9 @@ namespace ManagerService.Controllers
_myInfoMateDbContext.Instances.Add(instance);
_myInfoMateDbContext.SaveChanges();
return new OkObjectResult(instance.ToDTO());
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
}
catch (ArgumentNullException ex)
{
@ -167,7 +171,9 @@ namespace ManagerService.Controllers
//OldInstance instanceModified = _instanceService.Update(updatedInstance.Id, instance);
_myInfoMateDbContext.SaveChanges();
return new OkObjectResult(instance.ToDTO());
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
}
catch (ArgumentNullException ex)
{
@ -202,7 +208,9 @@ namespace ManagerService.Controllers
if (instance == null)
throw new KeyNotFoundException("Instance was not found");
return new OkObjectResult(instance.ToDTO());
var applicationInstances = _myInfoMateDbContext.ApplicationInstances.Where(ai => ai.InstanceId == instance.Id).ToList();
return new OkObjectResult(instance.ToDTO(applicationInstances.Select(ai => ai.ToDTO()).ToList()));
}
catch (KeyNotFoundException ex)
{

View File

@ -6,6 +6,8 @@
public string configurationId { get; set; }
public ConfigurationDTO configuration { get; set; }
public string applicationInstanceId { get; set; }
public int? order { get; set; }

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
namespace ManagerService.DTOs
{
@ -14,5 +15,7 @@ namespace ManagerService.DTOs
public bool isTablet { get; set; }
public bool isWeb { get; set; }
public bool isVR { get; set; }
public List<ApplicationInstanceDTO> applicationInstanceDTOs { get; set; }
}
}

View File

@ -41,6 +41,7 @@ namespace ManagerService.Data
{
id = Id,
configurationId = ConfigurationId,
configuration = Configuration?.ToDTO(new List<String>()),
applicationInstanceId = ApplicationInstanceId,
order = Order,
isActive = IsActive,

View File

@ -1,5 +1,6 @@
using ManagerService.DTOs;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace ManagerService.Data
@ -33,7 +34,7 @@ namespace ManagerService.Data
public bool IsVR { get; set; }
public InstanceDTO ToDTO()
public InstanceDTO ToDTO(List<ApplicationInstanceDTO> applicationInstanceDTOs)
{
return new InstanceDTO()
{
@ -47,6 +48,7 @@ namespace ManagerService.Data
isTablet = IsTablet,
isWeb = IsWeb,
isVR = IsVR,
applicationInstanceDTOs = applicationInstanceDTOs
};
}

View File

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