From 22ffe09dd8d95a3e20da98c0762ff7fae9d738d8 Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Wed, 27 Dec 2023 15:06:31 +0100 Subject: [PATCH] Add TranslationAndResource --- .../DTO/SubSection/PuzzleDTO.cs | 4 +- Manager.Interfaces/DTO/SubSection/QuizzDTO.cs | 15 +--- .../DTO/TranslationAndResourceDTO.cs | 16 ++++ Manager.Interfaces/DTO/TranslationDTO.cs | 3 +- .../Controllers/ConfigurationController.cs | 84 +++++++++++++------ .../Controllers/ResourceController.cs | 65 +++++++++++--- 6 files changed, 135 insertions(+), 52 deletions(-) create mode 100644 Manager.Interfaces/DTO/TranslationAndResourceDTO.cs diff --git a/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs b/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs index ee36918..435ee37 100644 --- a/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs @@ -7,8 +7,8 @@ namespace Manager.Interfaces.DTO { public class PuzzleDTO { - public List messageDebut { get; set; } - public List messageFin { get; set; } + public List messageDebut { get; set; } + public List messageFin { get; set; } public ContentDTO image { get; set; } // But only image is possible } } diff --git a/Manager.Interfaces/DTO/SubSection/QuizzDTO.cs b/Manager.Interfaces/DTO/SubSection/QuizzDTO.cs index 3be67ab..a35797f 100644 --- a/Manager.Interfaces/DTO/SubSection/QuizzDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/QuizzDTO.cs @@ -16,32 +16,23 @@ namespace Manager.Interfaces.DTO public class QuestionDTO { - public List label { get; set; } + public List label { get; set; } public List responses { get; set; } public string imageBackgroundResourceId { get; set; } // question image background public ResourceType imageBackgroundResourceType { get; set; } public string imageBackgroundResourceUrl { get; set; } // url to firebase storage or on internet - public string resourceId { get; set; } // question image, audio or video - public ResourceType resourceType { get; set; } - public string resourceUrl { get; set; } // url to firebase storage or on internet public int order { get; set; } // Order to show } public class ResponseDTO { - public List label { get; set; } + public List label { get; set; } public bool isGood { get; set; } - public string resourceId { get; set; } // question image, audio or video - public ResourceType resourceType { get; set; } - public string resourceUrl { get; set; } // url to firebase storage or on internet public int order { get; set; } // Order to show } public class LevelDTO { - public List label { get; set; } - public string resourceId { get; set; } // level result image or video - public ResourceType resourceType { get; set; } - public string resourceUrl { get; set; } // url to firebase storage or on internet + public List label { get; set; } } } diff --git a/Manager.Interfaces/DTO/TranslationAndResourceDTO.cs b/Manager.Interfaces/DTO/TranslationAndResourceDTO.cs new file mode 100644 index 0000000..92d01a6 --- /dev/null +++ b/Manager.Interfaces/DTO/TranslationAndResourceDTO.cs @@ -0,0 +1,16 @@ +using Manager.Interfaces.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Manager.Interfaces.DTO +{ + public class TranslationAndResourceDTO + { + public string language { get; set; } + public string value { get; set; } + public string resourceId { get; set; } // question image, audio or video + public ResourceType resourceType { get; set; } + public string resourceUrl { get; set; } // url to firebase storage or on internet + } +} diff --git a/Manager.Interfaces/DTO/TranslationDTO.cs b/Manager.Interfaces/DTO/TranslationDTO.cs index f311bb8..e30cef7 100644 --- a/Manager.Interfaces/DTO/TranslationDTO.cs +++ b/Manager.Interfaces/DTO/TranslationDTO.cs @@ -1,4 +1,5 @@ -using System; +using Manager.Interfaces.Models; +using System; using System.Collections.Generic; using System.Text; diff --git a/ManagerService/Controllers/ConfigurationController.cs b/ManagerService/Controllers/ConfigurationController.cs index ab7dab2..02658b1 100644 --- a/ManagerService/Controllers/ConfigurationController.cs +++ b/ManagerService/Controllers/ConfigurationController.cs @@ -389,9 +389,12 @@ namespace ManagerService.Controllers QuizzDTO quizzDTO = JsonConvert.DeserializeObject(section.data); foreach (var question in quizzDTO.questions) { - if (question.resourceId != null) + if (question.label != null) { - addResourceToList(resourceDTOs, question.resourceId); + foreach (var questionLabel in question.label) + { + addResourceToList(resourceDTOs, questionLabel.resourceId); + } } if (question.imageBackgroundResourceId != null) { @@ -399,38 +402,53 @@ namespace ManagerService.Controllers } foreach (var response in question.responses) { - if (response.resourceId != null) + if (response.label != null) { - addResourceToList(resourceDTOs, response.resourceId); + foreach (var responseLabel in response.label) + { + addResourceToList(resourceDTOs, responseLabel.resourceId); + } } } } if (quizzDTO.bad_level != null) { - if (quizzDTO.bad_level.resourceId != null) + if (quizzDTO.bad_level.label != null) { - addResourceToList(resourceDTOs, quizzDTO.bad_level.resourceId); + foreach (var badLevelLabel in quizzDTO.bad_level.label) + { + addResourceToList(resourceDTOs, badLevelLabel.resourceId); + } } } if (quizzDTO.medium_level != null) { - if (quizzDTO.medium_level.resourceId != null) + if (quizzDTO.medium_level.label != null) { - addResourceToList(resourceDTOs, quizzDTO.medium_level.resourceId); + foreach (var medium_levelLabel in quizzDTO.medium_level.label) + { + addResourceToList(resourceDTOs, medium_levelLabel.resourceId); + } } } if (quizzDTO.good_level != null) { - if (quizzDTO.good_level.resourceId != null) + if (quizzDTO.good_level.label != null) { - addResourceToList(resourceDTOs, quizzDTO.good_level.resourceId); + foreach (var good_levelLabel in quizzDTO.good_level.label) + { + addResourceToList(resourceDTOs, good_levelLabel.resourceId); + } } } if (quizzDTO.great_level != null) { - if (quizzDTO.great_level.resourceId != null) + if (quizzDTO.great_level.label != null) { - addResourceToList(resourceDTOs, quizzDTO.great_level.resourceId); + foreach (var great_levelLabel in quizzDTO.great_level.label) + { + addResourceToList(resourceDTOs, great_levelLabel.resourceId); + } } } break; @@ -616,9 +634,12 @@ namespace ManagerService.Controllers QuizzDTO quizzDTO = JsonConvert.DeserializeObject(section.data); foreach (var question in quizzDTO.questions) { - if (question.resourceId != null) + if (question.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == question.resourceId).FirstOrDefault()); + foreach (var questionLabel in question.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == questionLabel.resourceId).FirstOrDefault()); + } } if (question.imageBackgroundResourceId != null) { @@ -626,38 +647,53 @@ namespace ManagerService.Controllers } foreach (var response in question.responses) { - if (response.resourceId != null) + if (response.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == response.resourceId).FirstOrDefault()); + foreach (var responseLabel in response.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == responseLabel.resourceId).FirstOrDefault()); + } } } } if (quizzDTO.bad_level != null) { - if(quizzDTO.bad_level.resourceId != null) + if(quizzDTO.bad_level.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == quizzDTO.bad_level.resourceId).FirstOrDefault()); + foreach (var balLevelLabel in quizzDTO.bad_level.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == balLevelLabel.resourceId).FirstOrDefault()); + } } } if (quizzDTO.medium_level != null) { - if (quizzDTO.medium_level.resourceId != null) + if (quizzDTO.medium_level.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == quizzDTO.medium_level.resourceId).FirstOrDefault()); + foreach (var medium_levelLabel in quizzDTO.medium_level.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == medium_levelLabel.resourceId).FirstOrDefault()); + } } } if (quizzDTO.good_level != null) { - if (quizzDTO.good_level.resourceId != null) + if (quizzDTO.good_level.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == quizzDTO.good_level.resourceId).FirstOrDefault()); + foreach (var good_levelLabel in quizzDTO.good_level.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == good_levelLabel.resourceId).FirstOrDefault()); + } } } if (quizzDTO.great_level != null) { - if (quizzDTO.great_level.resourceId != null) + if (quizzDTO.great_level.label != null) { - createResource(exportConfiguration.resources.Where(r => r.id == quizzDTO.great_level.resourceId).FirstOrDefault()); + foreach (var great_levelLabel in quizzDTO.great_level.label) + { + createResource(exportConfiguration.resources.Where(r => r.id == great_levelLabel.resourceId).FirstOrDefault()); + } } } break; diff --git a/ManagerService/Controllers/ResourceController.cs b/ManagerService/Controllers/ResourceController.cs index 81ffda3..9131a13 100644 --- a/ManagerService/Controllers/ResourceController.cs +++ b/ManagerService/Controllers/ResourceController.cs @@ -454,34 +454,73 @@ namespace ManagerService.Controllers QuizzDTO quizzDTO = JsonConvert.DeserializeObject(section.Data); foreach (var question in quizzDTO.questions) { - question.resourceUrl = question.resourceId == id ? null : question.resourceUrl; - question.resourceId = question.resourceId == id ? null : question.resourceId; + if (question.label != null) + { + foreach (var questionLabel in question.label) + { + questionLabel.resourceUrl = questionLabel.resourceId == id ? null : questionLabel.resourceUrl; + questionLabel.resourceId = questionLabel.resourceId == id ? null : questionLabel.resourceId; + } + } + question.imageBackgroundResourceUrl = question.imageBackgroundResourceId == id ? null : question.imageBackgroundResourceUrl; question.imageBackgroundResourceId = question.imageBackgroundResourceId == id ? null : question.imageBackgroundResourceId; + foreach (var response in question.responses) { - response.resourceUrl = response.resourceId == id ? null : response.resourceUrl; - response.resourceId = response.resourceId == id ? null : response.resourceId; + if (response.label != null) + { + foreach (var responseLabel in response.label) + { + responseLabel.resourceUrl = responseLabel.resourceId == id ? null : responseLabel.resourceUrl; + responseLabel.resourceId = responseLabel.resourceId == id ? null : responseLabel.resourceId; + } + } } } - if (quizzDTO.bad_level != null) { - quizzDTO.bad_level.resourceUrl = quizzDTO.bad_level.resourceId == id ? null : quizzDTO.bad_level.resourceUrl; - quizzDTO.bad_level.resourceId = quizzDTO.bad_level.resourceId == id ? null : quizzDTO.bad_level.resourceId; + if (quizzDTO.bad_level != null) + { + if (quizzDTO.bad_level.label != null) + { + foreach (var badLevelLabel in quizzDTO.bad_level.label) + { + badLevelLabel.resourceUrl = badLevelLabel.resourceId == id ? null : badLevelLabel.resourceUrl; + badLevelLabel.resourceId = badLevelLabel.resourceId == id ? null : badLevelLabel.resourceId; + } + } } if (quizzDTO.medium_level != null) { - quizzDTO.medium_level.resourceUrl = quizzDTO.medium_level.resourceId == id ? null : quizzDTO.medium_level.resourceUrl; - quizzDTO.medium_level.resourceId = quizzDTO.medium_level.resourceId == id ? null : quizzDTO.medium_level.resourceId; + if (quizzDTO.medium_level.label != null) + { + foreach (var medium_levelLabel in quizzDTO.medium_level.label) + { + medium_levelLabel.resourceUrl = medium_levelLabel.resourceId == id ? null : medium_levelLabel.resourceUrl; + medium_levelLabel.resourceId = medium_levelLabel.resourceId == id ? null : medium_levelLabel.resourceId; + } + } } if (quizzDTO.good_level != null) { - quizzDTO.good_level.resourceUrl = quizzDTO.good_level.resourceId == id ? null : quizzDTO.good_level.resourceUrl; - quizzDTO.good_level.resourceId = quizzDTO.good_level.resourceId == id ? null : quizzDTO.good_level.resourceId; + if (quizzDTO.good_level.label != null) + { + foreach (var gooLevelLabel in quizzDTO.good_level.label) + { + gooLevelLabel.resourceUrl = gooLevelLabel.resourceId == id ? null : gooLevelLabel.resourceUrl; + gooLevelLabel.resourceId = gooLevelLabel.resourceId == id ? null : gooLevelLabel.resourceId; + } + } } if (quizzDTO.great_level != null) { - quizzDTO.great_level.resourceUrl = quizzDTO.great_level.resourceId == id ? null : quizzDTO.great_level.resourceUrl; - quizzDTO.great_level.resourceId = quizzDTO.great_level.resourceId == id ? null : quizzDTO.great_level.resourceId; + if (quizzDTO.great_level.label != null) + { + foreach (var greatLevelLabel in quizzDTO.great_level.label) + { + greatLevelLabel.resourceUrl = greatLevelLabel.resourceId == id ? null : greatLevelLabel.resourceUrl; + greatLevelLabel.resourceId = greatLevelLabel.resourceId == id ? null : greatLevelLabel.resourceId; + } + } } section.Data = JsonConvert.SerializeObject(quizzDTO); break;