Fix bugs + delete all resource occurence (when delete resource)
This commit is contained in:
parent
62aa7453c0
commit
cbd4773697
@ -26,12 +26,14 @@ namespace ManagerService.Controllers
|
||||
public class ResourceController : ControllerBase
|
||||
{
|
||||
private ResourceDatabaseService _resourceService;
|
||||
private SectionDatabaseService _sectionService;
|
||||
private readonly ILogger<ResourceController> _logger;
|
||||
|
||||
public ResourceController(ILogger<ResourceController> logger, ResourceDatabaseService resourceService)
|
||||
public ResourceController(ILogger<ResourceController> logger, ResourceDatabaseService resourceService, SectionDatabaseService sectionService)
|
||||
{
|
||||
_logger = logger;
|
||||
_resourceService = resourceService;
|
||||
_sectionService = sectionService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -295,6 +297,47 @@ namespace ManagerService.Controllers
|
||||
if (!_resourceService.IsExist(id))
|
||||
throw new KeyNotFoundException("Resource does not exist");
|
||||
|
||||
|
||||
// Delete all resource occurence
|
||||
foreach (var section in _sectionService.GetAll())
|
||||
{
|
||||
if (section.ImageId == id)
|
||||
{
|
||||
section.ImageId = null;
|
||||
section.ImageSource = null;
|
||||
}
|
||||
|
||||
switch (section.Type)
|
||||
{
|
||||
case SectionType.Map:
|
||||
MapDTO mapDTO = JsonConvert.DeserializeObject<MapDTO>(section.Data);
|
||||
mapDTO.iconResourceId = mapDTO.iconResourceId == id ? null : mapDTO.iconResourceId;
|
||||
foreach (var point in mapDTO.points)
|
||||
{
|
||||
foreach (var image in point.images)
|
||||
{
|
||||
image.imageSource = image.imageResourceId == id ? null : image.imageSource;
|
||||
image.imageResourceId = image.imageResourceId == id ? null : image.imageResourceId;
|
||||
}
|
||||
}
|
||||
section.Data = JsonConvert.SerializeObject(mapDTO);
|
||||
break;
|
||||
case SectionType.Slider:
|
||||
SliderDTO sliderDTO = JsonConvert.DeserializeObject<SliderDTO>(section.Data);
|
||||
List<ImageDTO> imagesToKeep = new List<ImageDTO>();
|
||||
foreach (var image in sliderDTO.images)
|
||||
{
|
||||
if (image.resourceId != id)
|
||||
imagesToKeep.Add(image);
|
||||
}
|
||||
sliderDTO.images = imagesToKeep;
|
||||
section.Data = JsonConvert.SerializeObject(sliderDTO);
|
||||
break;
|
||||
}
|
||||
|
||||
_sectionService.Update(section.Id, section);
|
||||
}
|
||||
|
||||
_resourceService.Remove(id);
|
||||
|
||||
return new ObjectResult("The resource has been deleted") { StatusCode = 202 };
|
||||
|
||||
@ -279,27 +279,13 @@ namespace ManagerService.Controllers
|
||||
mapDTO.mapType = MapTypeApp.hybrid;
|
||||
mapDTO.zoom = 18;
|
||||
|
||||
mapDTO.points = new List<GeoPointDTO>() {
|
||||
new GeoPointDTO() {
|
||||
id = 0,
|
||||
title = section.Title,
|
||||
description = section.Description,
|
||||
latitude = "50.416639",
|
||||
longitude= "4.879169",
|
||||
images = new List<ImageGeoPoint>()
|
||||
}
|
||||
};
|
||||
mapDTO.points = new List<GeoPointDTO>();
|
||||
|
||||
section.Data = JsonConvert.SerializeObject(mapDTO); // Include all info from specific section as JSON
|
||||
break;
|
||||
case SectionType.Slider:
|
||||
sliderDTO = new SliderDTO();
|
||||
ImageDTO imageDTO = new ImageDTO();
|
||||
imageDTO.title = section.Title;
|
||||
imageDTO.description = section.Description;
|
||||
imageDTO.source = null;
|
||||
sliderDTO.images = new List<ImageDTO>();
|
||||
sliderDTO.images.Add(imageDTO);
|
||||
|
||||
section.Data = JsonConvert.SerializeObject(sliderDTO); // Include all info from specific section as JSON
|
||||
break;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user