Multiple fixs after help from ai
This commit is contained in:
parent
98f3606887
commit
f17d72b34e
@ -393,6 +393,15 @@ namespace ManagerService.Controllers
|
|||||||
|
|
||||||
GuidedPath guidedPath = new GuidedPath().FromDTO(guidedPathDTO);
|
GuidedPath guidedPath = new GuidedPath().FromDTO(guidedPathDTO);
|
||||||
guidedPath.Id = idService.GenerateHexId();
|
guidedPath.Id = idService.GenerateHexId();
|
||||||
|
guidedPath.SectionMapId = sectionMapId;
|
||||||
|
guidedPath.Steps = new List<GuidedStep>();
|
||||||
|
foreach (var stepDTO in guidedPathDTO.steps ?? new List<GuidedStepDTO>())
|
||||||
|
{
|
||||||
|
GuidedStep step = new GuidedStep().FromDTO(stepDTO);
|
||||||
|
step.Id = idService.GenerateHexId();
|
||||||
|
step.GuidedPathId = guidedPath.Id;
|
||||||
|
guidedPath.Steps.Add(step);
|
||||||
|
}
|
||||||
_myInfoMateDbContext.GuidedPaths.Add(guidedPath);
|
_myInfoMateDbContext.GuidedPaths.Add(guidedPath);
|
||||||
_myInfoMateDbContext.SaveChanges();
|
_myInfoMateDbContext.SaveChanges();
|
||||||
|
|
||||||
@ -428,7 +437,9 @@ namespace ManagerService.Controllers
|
|||||||
if (guidedPathDTO == null)
|
if (guidedPathDTO == null)
|
||||||
throw new ArgumentNullException("GuidedPath param is null");
|
throw new ArgumentNullException("GuidedPath param is null");
|
||||||
|
|
||||||
var existingGuidedPath = _myInfoMateDbContext.GuidedPaths.FirstOrDefault(gp => gp.Id == guidedPathDTO.id);
|
var existingGuidedPath = _myInfoMateDbContext.GuidedPaths
|
||||||
|
.Include(gp => gp.Steps)
|
||||||
|
.FirstOrDefault(gp => gp.Id == guidedPathDTO.id);
|
||||||
if (existingGuidedPath == null)
|
if (existingGuidedPath == null)
|
||||||
throw new KeyNotFoundException("GuidedPath does not exist");
|
throw new KeyNotFoundException("GuidedPath does not exist");
|
||||||
|
|
||||||
@ -442,9 +453,40 @@ namespace ManagerService.Controllers
|
|||||||
existingGuidedPath.HideNextStepsUntilComplete = guidedPathDTO.hideNextStepsUntilComplete;
|
existingGuidedPath.HideNextStepsUntilComplete = guidedPathDTO.hideNextStepsUntilComplete;
|
||||||
existingGuidedPath.Order = guidedPathDTO.order;
|
existingGuidedPath.Order = guidedPathDTO.order;
|
||||||
|
|
||||||
|
// Sync steps
|
||||||
|
var dtoStepIds = (guidedPathDTO.steps ?? new List<GuidedStepDTO>())
|
||||||
|
.Where(s => s.id != null)
|
||||||
|
.Select(s => s.id)
|
||||||
|
.ToHashSet();
|
||||||
|
|
||||||
|
// Delete removed steps
|
||||||
|
var stepsToRemove = existingGuidedPath.Steps
|
||||||
|
.Where(s => !dtoStepIds.Contains(s.Id))
|
||||||
|
.ToList();
|
||||||
|
foreach (var s in stepsToRemove)
|
||||||
|
existingGuidedPath.Steps.Remove(s);
|
||||||
|
|
||||||
|
// Create or update steps
|
||||||
|
foreach (var stepDTO in guidedPathDTO.steps ?? new List<GuidedStepDTO>())
|
||||||
|
{
|
||||||
|
var existing = existingGuidedPath.Steps.FirstOrDefault(s => s.Id == stepDTO.id);
|
||||||
|
if (existing != null)
|
||||||
|
{
|
||||||
|
existing.FromDTO(stepDTO);
|
||||||
|
existing.GuidedPathId = existingGuidedPath.Id;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var newStep = new GuidedStep().FromDTO(stepDTO);
|
||||||
|
newStep.Id = idService.GenerateHexId();
|
||||||
|
newStep.GuidedPathId = existingGuidedPath.Id;
|
||||||
|
existingGuidedPath.Steps.Add(newStep);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_myInfoMateDbContext.SaveChanges();
|
_myInfoMateDbContext.SaveChanges();
|
||||||
|
|
||||||
return new OkObjectResult(existingGuidedPath);
|
return new OkObjectResult(existingGuidedPath.ToDTO());
|
||||||
}
|
}
|
||||||
catch (ArgumentNullException ex)
|
catch (ArgumentNullException ex)
|
||||||
{
|
{
|
||||||
@ -559,6 +601,7 @@ namespace ManagerService.Controllers
|
|||||||
|
|
||||||
GuidedStep guidedStep = new GuidedStep().FromDTO(guidedStepDTO);
|
GuidedStep guidedStep = new GuidedStep().FromDTO(guidedStepDTO);
|
||||||
guidedStep.Id = idService.GenerateHexId();
|
guidedStep.Id = idService.GenerateHexId();
|
||||||
|
guidedStep.GuidedPathId = guidedPathId;
|
||||||
|
|
||||||
_myInfoMateDbContext.GuidedSteps.Add(guidedStep);
|
_myInfoMateDbContext.GuidedSteps.Add(guidedStep);
|
||||||
_myInfoMateDbContext.SaveChanges();
|
_myInfoMateDbContext.SaveChanges();
|
||||||
|
|||||||
@ -10,6 +10,7 @@ namespace ManagerService.DTOs
|
|||||||
public List<TranslationDTO> description { get; set; }
|
public List<TranslationDTO> description { get; set; }
|
||||||
public string? sectionMapId { get; set; }
|
public string? sectionMapId { get; set; }
|
||||||
public string? sectionEventId { get; set; }
|
public string? sectionEventId { get; set; }
|
||||||
|
public string? sectionGameId { get; set; }
|
||||||
public bool isLinear { get; set; }
|
public bool isLinear { get; set; }
|
||||||
public bool requireSuccessToAdvance { get; set; }
|
public bool requireSuccessToAdvance { get; set; }
|
||||||
public bool hideNextStepsUntilComplete { get; set; }
|
public bool hideNextStepsUntilComplete { get; set; }
|
||||||
|
|||||||
@ -5,6 +5,7 @@ namespace Manager.DTOs
|
|||||||
{
|
{
|
||||||
public class AgendaDTO : SectionDTO
|
public class AgendaDTO : SectionDTO
|
||||||
{
|
{
|
||||||
|
public bool isOnlineAgenda { get; set; }
|
||||||
public List<TranslationDTO> resourceIds { get; set; } // All json files for all languages
|
public List<TranslationDTO> resourceIds { get; set; } // All json files for all languages
|
||||||
public MapProvider? agendaMapProvider { get; set; } // Default = Google
|
public MapProvider? agendaMapProvider { get; set; } // Default = Google
|
||||||
public List<EventAgendaDTO> events { get; set; }
|
public List<EventAgendaDTO> events { get; set; }
|
||||||
|
|||||||
@ -13,5 +13,6 @@ namespace Manager.DTOs
|
|||||||
public int rows { get; set; } = 3;
|
public int rows { get; set; } = 3;
|
||||||
public int cols { get; set; } = 3;
|
public int cols { get; set; } = 3;
|
||||||
public GameTypes gameType { get; set; } = GameTypes.Puzzle;
|
public GameTypes gameType { get; set; } = GameTypes.Puzzle;
|
||||||
|
public List<GuidedPathDTO> guidedPaths { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,8 @@ namespace Manager.DTOs
|
|||||||
public List<CategorieDTO> categories { get; set; }
|
public List<CategorieDTO> categories { get; set; }
|
||||||
public string centerLatitude { get; set; } // Center on
|
public string centerLatitude { get; set; } // Center on
|
||||||
public string centerLongitude { get; set; } // Center on
|
public string centerLongitude { get; set; } // Center on
|
||||||
|
public bool isParcours { get; set; }
|
||||||
|
public List<GuidedPathDTO> guidedPaths { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GeoPointDTO
|
public class GeoPointDTO
|
||||||
|
|||||||
@ -65,11 +65,11 @@ namespace ManagerService.Data.SubSection
|
|||||||
order = Order,
|
order = Order,
|
||||||
title = Title,
|
title = Title,
|
||||||
description = Description,
|
description = Description,
|
||||||
geometry = Geometry.ToDto(),
|
geometry = Geometry?.ToDto(),
|
||||||
zoneRadiusMeters = ZoneRadiusMeters,
|
zoneRadiusMeters = ZoneRadiusMeters,
|
||||||
imageUrl = ImageUrl,
|
imageUrl = ImageUrl,
|
||||||
triggerGeoPointId = TriggerGeoPointId,
|
triggerGeoPointId = TriggerGeoPointId,
|
||||||
triggerGeoPoint = TriggerGeoPoint.ToDTO(),
|
triggerGeoPoint = TriggerGeoPoint?.ToDTO(),
|
||||||
isHiddenInitially = IsHiddenInitially,
|
isHiddenInitially = IsHiddenInitially,
|
||||||
isStepTimer = IsStepTimer,
|
isStepTimer = IsStepTimer,
|
||||||
isStepLocked = IsStepLocked,
|
isStepLocked = IsStepLocked,
|
||||||
|
|||||||
@ -48,6 +48,7 @@ namespace ManagerService.Data.SubSection
|
|||||||
longitude = Longitude,
|
longitude = Longitude,
|
||||||
meterZoneGPS = MeterZoneGPS,
|
meterZoneGPS = MeterZoneGPS,
|
||||||
resourceIds = AgendaResourceIds,
|
resourceIds = AgendaResourceIds,
|
||||||
|
isOnlineAgenda = IsOnlineAgenda,
|
||||||
agendaMapProvider = AgendaMapProvider,
|
agendaMapProvider = AgendaMapProvider,
|
||||||
events = EventAgendas.Select(e => e.ToDTO()).ToList(),
|
events = EventAgendas.Select(e => e.ToDTO()).ToList(),
|
||||||
};
|
};
|
||||||
|
|||||||
@ -87,6 +87,7 @@ namespace ManagerService.Services
|
|||||||
Longitude = dto.longitude,
|
Longitude = dto.longitude,
|
||||||
MeterZoneGPS = dto.meterZoneGPS,
|
MeterZoneGPS = dto.meterZoneGPS,
|
||||||
Type = dto.type,
|
Type = dto.type,
|
||||||
|
IsOnlineAgenda = agendaDTO.isOnlineAgenda,
|
||||||
AgendaResourceIds = agendaDTO.resourceIds,
|
AgendaResourceIds = agendaDTO.resourceIds,
|
||||||
AgendaMapProvider = agendaDTO.agendaMapProvider,
|
AgendaMapProvider = agendaDTO.agendaMapProvider,
|
||||||
//EventAgendas = // TODO specific
|
//EventAgendas = // TODO specific
|
||||||
@ -239,7 +240,8 @@ namespace ManagerService.Services
|
|||||||
GameMessageFin = puzzleDTO.messageFin,
|
GameMessageFin = puzzleDTO.messageFin,
|
||||||
GamePuzzleImageId = puzzleDTO.puzzleImageId,
|
GamePuzzleImageId = puzzleDTO.puzzleImageId,
|
||||||
GamePuzzleRows = puzzleDTO.rows,
|
GamePuzzleRows = puzzleDTO.rows,
|
||||||
GamePuzzleCols = puzzleDTO.cols
|
GamePuzzleCols = puzzleDTO.cols,
|
||||||
|
GameType = puzzleDTO.gameType,
|
||||||
},
|
},
|
||||||
SectionType.Quiz => new SectionQuiz
|
SectionType.Quiz => new SectionQuiz
|
||||||
{
|
{
|
||||||
@ -387,6 +389,7 @@ namespace ManagerService.Services
|
|||||||
longitude = agenda.Longitude,
|
longitude = agenda.Longitude,
|
||||||
meterZoneGPS = agenda.MeterZoneGPS,
|
meterZoneGPS = agenda.MeterZoneGPS,
|
||||||
type = agenda.Type,
|
type = agenda.Type,
|
||||||
|
isOnlineAgenda = agenda.IsOnlineAgenda,
|
||||||
resourceIds = agenda.AgendaResourceIds,
|
resourceIds = agenda.AgendaResourceIds,
|
||||||
agendaMapProvider = agenda.AgendaMapProvider,
|
agendaMapProvider = agenda.AgendaMapProvider,
|
||||||
// events => TODO specific
|
// events => TODO specific
|
||||||
@ -540,6 +543,7 @@ namespace ManagerService.Services
|
|||||||
messageFin = game.GameMessageFin,
|
messageFin = game.GameMessageFin,
|
||||||
puzzleImage = game.GamePuzzleImage?.ToDTO(),
|
puzzleImage = game.GamePuzzleImage?.ToDTO(),
|
||||||
puzzleImageId = game.GamePuzzleImageId,
|
puzzleImageId = game.GamePuzzleImageId,
|
||||||
|
gameType = game.GameType,
|
||||||
rows = game.GamePuzzleRows,
|
rows = game.GamePuzzleRows,
|
||||||
cols = game.GamePuzzleCols
|
cols = game.GamePuzzleCols
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user