diff --git a/Manager.Interfaces/DTO/ResourceDTO.cs b/Manager.Interfaces/DTO/ResourceDTO.cs index 63353f6..156c932 100644 --- a/Manager.Interfaces/DTO/ResourceDTO.cs +++ b/Manager.Interfaces/DTO/ResourceDTO.cs @@ -10,7 +10,7 @@ namespace Manager.Interfaces.DTO public string id { get; set; } public ResourceType type { get; set; } public string label { get; set; } - public string data { get; set; } + public string url { get; set; } // firebase url public DateTime dateCreation { get; set; } public string instanceId { get; set; } } diff --git a/Manager.Interfaces/DTO/SubSection/AgendaDTO.cs b/Manager.Interfaces/DTO/SubSection/AgendaDTO.cs index 1e16765..0dd9dbf 100644 --- a/Manager.Interfaces/DTO/SubSection/AgendaDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/AgendaDTO.cs @@ -6,7 +6,7 @@ namespace Manager.Interfaces.DTO { public class AgendaDTO { - //public string Title { get; set; } // Dictionary with all languages - public string source { get; set; } // url to resource id (local) or on internet => JSON file + public string resourceId { get; set; } // url to resource id + public string resourceUrl { get; set; } // url to resource firebase or on internet => JSON file } } diff --git a/Manager.Interfaces/DTO/SubSection/ArticleDTO.cs b/Manager.Interfaces/DTO/SubSection/ArticleDTO.cs index 648986a..aefa629 100644 --- a/Manager.Interfaces/DTO/SubSection/ArticleDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/ArticleDTO.cs @@ -11,16 +11,6 @@ namespace Manager.Interfaces.DTO public bool isContentTop { get; set; } // MyVisit - True if content is displayed at top, false otherwise public List audioIds { get; set; } public bool isReadAudioAuto { get; set; } // MyVisit - True for audio play when open the article / false otherwise - public List images { get; set; } // Will check if ok or if we need need type of image (simpler) - } - - public class ImageDTO - { - public List title { get; set; } - public List description { get; set; } - public string resourceId { get; set; } - public string source { get; set; } // url to resource id (local) or on internet - public int order { get; set; } // Order to show - public ResourceType type { get; set; } + public List contents { get; set; } } } diff --git a/Manager.Interfaces/DTO/SubSection/PdfDTO.cs b/Manager.Interfaces/DTO/SubSection/PdfDTO.cs index f25356a..a68e421 100644 --- a/Manager.Interfaces/DTO/SubSection/PdfDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/PdfDTO.cs @@ -6,7 +6,7 @@ namespace Manager.Interfaces.DTO { public class PdfDTO { - //public string Title { get; set; } // Dictionary with all languages - public string source { get; set; } // url to resource id (local) or on internet + public string resourceId { get; set; } // url to resource id + public string resourceUrl { get; set; } // url to resource firebase or on internet => JSON file } } diff --git a/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs b/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs index 28ec239..ee36918 100644 --- a/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs +++ b/Manager.Interfaces/DTO/SubSection/PuzzleDTO.cs @@ -9,6 +9,6 @@ namespace Manager.Interfaces.DTO { public List messageDebut { get; set; } public List messageFin { get; set; } - public ImageDTO image { get; set; } + public ContentDTO image { get; set; } // But only image is possible } } diff --git a/Manager.Interfaces/Models/Resource.cs b/Manager.Interfaces/Models/Resource.cs index 727859c..dd807d8 100644 --- a/Manager.Interfaces/Models/Resource.cs +++ b/Manager.Interfaces/Models/Resource.cs @@ -31,14 +31,17 @@ namespace Manager.Interfaces.Models [BsonRequired] public string InstanceId { get; set; } - public ResourceDTO ToDTO(string data = null) // + [BsonElement("URL")] + public string Url { get; set; } // Firebase url + + public ResourceDTO ToDTO() { return new ResourceDTO() { id = Id, label = Label, type = Type, - data = data, + url = Url, dateCreation = DateCreation, instanceId = InstanceId }; diff --git a/Manager.Interfaces/Models/ResourceData.cs b/Manager.Interfaces/Models/ResourceData.cs deleted file mode 100644 index 1a2c292..0000000 --- a/Manager.Interfaces/Models/ResourceData.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Manager.Interfaces.DTO; -using MongoDB.Bson.Serialization.Attributes; -using System; -using System.Collections.Generic; -using System.Text; - - -namespace Manager.Interfaces.Models -{ - /// - /// Resource Information - /// - public class ResourceData - { - [BsonId] - [BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)] - public string Id { get; set; } - - [BsonElement("Data")] - [BsonRequired] - public string Data { get; set; } - - [BsonElement("ResourceId")] - [BsonRequired] - public string ResourceId { get; set; } - - [BsonElement("InstanceId")] - [BsonRequired] - public string InstanceId { get; set; } - } -} diff --git a/ManagerService/Controllers/ConfigurationController.cs b/ManagerService/Controllers/ConfigurationController.cs index 9daacab..7fd7fa6 100644 --- a/ManagerService/Controllers/ConfigurationController.cs +++ b/ManagerService/Controllers/ConfigurationController.cs @@ -27,12 +27,11 @@ namespace ManagerService.Controllers private InstanceDatabaseService _instanceService; private SectionDatabaseService _sectionService; private ResourceDatabaseService _resourceService; - private ResourceDataDatabaseService _resourceDataService; private DeviceDatabaseService _deviceService; private readonly ILogger _logger; private readonly IConfiguration _configuration; - public ConfigurationController(IConfiguration configuration, ILogger logger, ConfigurationDatabaseService configurationService, InstanceDatabaseService instanceService, SectionDatabaseService sectionService, ResourceDatabaseService resourceService, ResourceDataDatabaseService resourceDataService, DeviceDatabaseService deviceService) + public ConfigurationController(IConfiguration configuration, ILogger logger, ConfigurationDatabaseService configurationService, InstanceDatabaseService instanceService, SectionDatabaseService sectionService, ResourceDatabaseService resourceService, DeviceDatabaseService deviceService) { _logger = logger; _configuration = configuration; @@ -40,7 +39,6 @@ namespace ManagerService.Controllers _instanceService = instanceService; _sectionService = sectionService; _resourceService = resourceService; - _resourceDataService = resourceDataService; _deviceService = deviceService; } @@ -409,11 +407,11 @@ namespace ManagerService.Controllers break; case SectionType.Article: ArticleDTO articleDTO = JsonConvert.DeserializeObject(section.data); - foreach (var image in articleDTO.images) + foreach (var content in articleDTO.contents) { - if (image.resourceId != null) + if (content.resourceId != null) { - addResourceToList(resourceDTOs, image.resourceId); + addResourceToList(resourceDTOs, content.resourceId); } } @@ -606,11 +604,11 @@ namespace ManagerService.Controllers break; case SectionType.Article: ArticleDTO articleDTO = JsonConvert.DeserializeObject(section.data); - foreach (var image in articleDTO.images) + foreach (var content in articleDTO.contents) { - if (image.resourceId != null) + if (content.resourceId != null) { - createResource(exportConfiguration.resources.Where(r => r.id == image.resourceId).FirstOrDefault()); + createResource(exportConfiguration.resources.Where(r => r.id == content.resourceId).FirstOrDefault()); } } break; @@ -655,26 +653,17 @@ namespace ManagerService.Controllers resource.DateCreation = resourceExport.dateCreation; //resource.Data = resourceExport.data; - ResourceData resourceData = new ResourceData(); - resourceData.ResourceId = resourceExport.id; - resourceData.InstanceId = resourceExport.instanceId; - resourceData.Data = resourceExport.data; - if (!_resourceService.IsExist(resourceExport.id)) _resourceService.Create(resource); - - if (!_resourceDataService.IsExist(resourceExport.id)) - _resourceDataService.Create(resourceData); } } private List addResourceToList(List resourceDTOs, string resourceId) { if (!resourceDTOs.Select(r => r.id).Contains(resourceId)) { Resource resource = _resourceService.GetById(resourceId); - ResourceData resourceData = _resourceDataService.GetByResourceId(resourceId); - if (resource != null && resourceData != null && !resourceDTOs.Any(r => r.id == resource.Id)) { - resourceDTOs.Add(resource.ToDTO(resourceData.Data)); + if (resource != null && !resourceDTOs.Any(r => r.id == resource.Id)) { + resourceDTOs.Add(resource.ToDTO()); } } return resourceDTOs; diff --git a/ManagerService/Controllers/ResourceController.cs b/ManagerService/Controllers/ResourceController.cs index 4d10e6d..3204b1b 100644 --- a/ManagerService/Controllers/ResourceController.cs +++ b/ManagerService/Controllers/ResourceController.cs @@ -15,6 +15,7 @@ using ManagerService.Helpers; using ManagerService.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Server.IIS.Core; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using NSwag.Annotations; @@ -28,7 +29,6 @@ namespace ManagerService.Controllers public class ResourceController : ControllerBase { private ResourceDatabaseService _resourceService; - private ResourceDataDatabaseService _resourceDataService; private SectionDatabaseService _sectionService; private ConfigurationDatabaseService _configurationService; private readonly ILogger _logger; @@ -36,11 +36,10 @@ namespace ManagerService.Controllers private static int MaxWidth = 1024; private static int MaxHeight = 1024; - public ResourceController(ILogger logger, ResourceDatabaseService resourceService, ResourceDataDatabaseService resourceDataService, SectionDatabaseService sectionService, ConfigurationDatabaseService configurationService) + public ResourceController(ILogger logger, ResourceDatabaseService resourceService, SectionDatabaseService sectionService, ConfigurationDatabaseService configurationService) { _logger = logger; _resourceService = resourceService; - _resourceDataService = resourceDataService; _sectionService = sectionService; _configurationService = configurationService; } @@ -74,11 +73,6 @@ namespace ManagerService.Controllers { ResourceDTO resourceDTO = new ResourceDTO(); resourceDTO = resource.ToDTO(); - if(resource.Type == ResourceType.ImageUrl) - { - var resourceData = _resourceDataService.GetByResourceId(resource.Id); - resourceDTO.data = resourceData != null ? resourceData.Data : null; - } resourceDTOs.Add(resourceDTO); } @@ -110,8 +104,6 @@ namespace ManagerService.Controllers ResourceDTO resourceDTO = new ResourceDTO(); resourceDTO = resource.ToDTO(); - ResourceData resourceData = _resourceDataService.GetByResourceId(id); - resourceDTO.data = resourceData.Data; /*if (resource.Type == ResourceType.ImageUrl) { var resourceData = _resourceDataService.GetByResourceId(resource.Id); @@ -166,12 +158,10 @@ namespace ManagerService.Controllers try { Resource resource = _resourceService.GetById(id); - ResourceData resourceData = _resourceDataService.GetByResourceId(id); - - if (resource == null || resourceData == null) + if (resource == null) throw new KeyNotFoundException("This resource was not found"); - var file = Convert.FromBase64String(resourceData.Data); + //var file = Convert.FromBase64String(resourceData.Data); // RESIZE IMAGE @@ -193,7 +183,7 @@ namespace ManagerService.Controllers } }*/ - if (resource.Type == ResourceType.Image) + /*if (resource.Type == ResourceType.Image) { return new FileContentResult(file, "image/png") { @@ -208,7 +198,8 @@ namespace ManagerService.Controllers }; } - return new FileContentResult(file, "image/png"); + return new FileContentResult(file, "image/png");*/ + return new NotFoundObjectResult("No more supported") { }; } catch (KeyNotFoundException ex) { @@ -220,6 +211,7 @@ namespace ManagerService.Controllers } } + // OLD VERSION /// /// Upload a specific resource (picture or video) /// @@ -272,12 +264,6 @@ namespace ManagerService.Controllers resource.InstanceId = instanceId; Resource resourceCreated = _resourceService.Create(resource); resources.Add(resourceCreated); - - ResourceData resourceData = new ResourceData(); - resourceData.Data = stringResult; - resourceData.ResourceId = resourceCreated.Id; - resourceData.InstanceId = stringResult; - ResourceData resourceDataCreated = _resourceDataService.Create(resourceData); } } return Ok(resources.Select(r => r.ToDTO())); @@ -321,21 +307,13 @@ namespace ManagerService.Controllers resource.InstanceId = newResource.instanceId; resource.Label = newResource.label; resource.Type = newResource.type; + resource.Url = newResource.url; resource.DateCreation = DateTime.Now; //resource.Data = newResource.data; resource.InstanceId = newResource.instanceId; Resource resourceCreated = _resourceService.Create(resource); - if(resource.Type == ResourceType.ImageUrl || resource.Type == ResourceType.VideoUrl) - { - ResourceData resourceData = new ResourceData(); - resourceData.Data = newResource.data; - resourceData.ResourceId = resourceCreated.Id; - resourceData.InstanceId = newResource.instanceId; - ResourceData resourceDataCreated = _resourceDataService.Create(resourceData); - } - return new OkObjectResult(resourceCreated.ToDTO()); // WITHOUT DATA } catch (ArgumentNullException ex) @@ -378,6 +356,7 @@ namespace ManagerService.Controllers resource.InstanceId = updatedResource.instanceId; resource.Label = updatedResource.label; resource.Type = updatedResource.type; + resource.Url = updatedResource.url; //resource.Data = updatedResource.data; // NOT ALLOWED Resource resourceModified = _resourceService.Update(updatedResource.id, resource); @@ -416,7 +395,6 @@ namespace ManagerService.Controllers throw new ArgumentNullException("Resource param is null"); var ressource = _resourceService.GetById(id); - var ressourceData = _resourceDataService.GetByResourceId(id); if (ressource == null) throw new KeyNotFoundException("Resource does not exist"); @@ -496,13 +474,13 @@ namespace ManagerService.Controllers break; case SectionType.Article: ArticleDTO articleDTO = JsonConvert.DeserializeObject(section.Data); - List imagesArticleToKeep = new List(); - foreach (var image in articleDTO.images) + List contentsArticleToKeep = new List(); + foreach (var content in articleDTO.contents) { - if (image.resourceId != id) - imagesArticleToKeep.Add(image); + if (content.resourceId != id) + contentsArticleToKeep.Add(content); } - articleDTO.images = imagesArticleToKeep; + articleDTO.contents = contentsArticleToKeep; section.Data = JsonConvert.SerializeObject(articleDTO); break; } @@ -511,10 +489,6 @@ namespace ManagerService.Controllers } _resourceService.Remove(id); - if (ressourceData != null) - { - _resourceDataService.Remove(ressourceData.Id); - } return new ObjectResult("The resource has been deleted") { StatusCode = 202 }; diff --git a/ManagerService/Controllers/SectionController.cs b/ManagerService/Controllers/SectionController.cs index 47a1616..77620b5 100644 --- a/ManagerService/Controllers/SectionController.cs +++ b/ManagerService/Controllers/SectionController.cs @@ -414,7 +414,7 @@ namespace ManagerService.Controllers break; case SectionType.Article: ArticleDTO articleDTO = new ArticleDTO(); - articleDTO.images = new List(); + articleDTO.contents = new List(); articleDTO.content = contentArticle; articleDTO.audioIds = LanguageInit.Init("Audio", languages, true); diff --git a/ManagerService/Extensions/MqttClientService.cs b/ManagerService/Extensions/MqttClientService.cs index 56ca6bf..d8881a7 100644 --- a/ManagerService/Extensions/MqttClientService.cs +++ b/ManagerService/Extensions/MqttClientService.cs @@ -27,9 +27,9 @@ namespace Mqtt.Client.AspNetCore.Services public MqttClientService(IMqttClientOptions options) { - var server = "mymuseum.be"; + var server = "myinfomate.be"; #if DEBUG - server = "mymuseum.be";//"192.168.31.96"; + server = "myinfomate.be";//"192.168.31.96"; #endif this.options = options; this.options = new MqttClientOptionsBuilder() diff --git a/ManagerService/Properties/PublishProfiles/registry.unov.be.pubxml b/ManagerService/Properties/PublishProfiles/registry.unov.be.pubxml index a0dae9e..00d2bf9 100644 --- a/ManagerService/Properties/PublishProfiles/registry.unov.be.pubxml +++ b/ManagerService/Properties/PublishProfiles/registry.unov.be.pubxml @@ -9,7 +9,7 @@ by editing this MSBuild file. In order to learn more about this please visit htt true https://registry.unov.be admin - latest + version-2.0.0 ContainerRegistry Release Any CPU diff --git a/ManagerService/Services/ResourceDataDatabaseService.cs b/ManagerService/Services/ResourceDataDatabaseService.cs deleted file mode 100644 index 11a38c6..0000000 --- a/ManagerService/Services/ResourceDataDatabaseService.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Manager.Interfaces.Models; -using Microsoft.Extensions.Configuration; -using MongoDB.Driver; - -namespace Manager.Services -{ - public class ResourceDataDatabaseService - { - private readonly IMongoCollection _ResourcesData; - - public ResourceDataDatabaseService(IConfiguration config) - { - var client = new MongoClient(config.GetConnectionString("TabletDb")); - var database = client.GetDatabase("TabletDb"); - _ResourcesData = database.GetCollection("ResourcesData"); - } - public List GetAll(string instanceId) - { - return _ResourcesData.Find(r => r.InstanceId == instanceId).ToList(); - } - - public ResourceData GetById(string id) - { - return _ResourcesData.Find(r => r.Id == id).FirstOrDefault(); - } - - public ResourceData GetByResourceId(string id) - { - return _ResourcesData.Find(r => r.ResourceId == id).FirstOrDefault(); - } - - public bool IsExist(string id) - { - return _ResourcesData.Find(r => r.Id == id).FirstOrDefault() != null ? true : false; - } - - public bool IsExistResourceId(string id) - { - return _ResourcesData.Find(r => r.ResourceId == id).FirstOrDefault() != null ? true : false; - } - - public ResourceData Create(ResourceData resource) - { - _ResourcesData.InsertOne(resource); - return resource; - } - - public ResourceData Update(string id, ResourceData resourceIn) - { - _ResourcesData.ReplaceOne(r => r.Id == id, resourceIn); - return resourceIn; - } - - public void Remove(string id) - { - _ResourcesData.DeleteOne(r => r.Id == id); - } - - } -} diff --git a/ManagerService/Startup.cs b/ManagerService/Startup.cs index 2a37b04..373c057 100644 --- a/ManagerService/Startup.cs +++ b/ManagerService/Startup.cs @@ -142,7 +142,6 @@ namespace ManagerService services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/ManagerService/appsettings.json b/ManagerService/appsettings.json index 91cd218..057703f 100644 --- a/ManagerService/appsettings.json +++ b/ManagerService/appsettings.json @@ -4,7 +4,8 @@ //"TabletDb": "mongodb://admin:MioTech4ever!@localhost:27017", //PROD - Thomas //"TabletDb": "mongodb://admin:MioTech4ever!@192.168.31.140:27017" //PROD - Thomas //"TabletDb": "mongodb://admin:mdlf2021!@localhost:27017" //PROD MDLF - "TabletDb": "mongodb://admin:MyMuseum2022!@51.77.222.154:27017" //PROD MyMuseum + //"TabletDb": "mongodb://admin:MyMuseum2022!@51.77.222.154:27017", //PROD MyMuseum + "TabletDb": "mongodb://admin:MyInfoMate2023!@135.125.232.116:27017" //PROD MyInfoMate }, "Logging": { "LogLevel": { @@ -33,7 +34,7 @@ "ClientSettings": { "Id": "ManagerService", "UserName": "user1", //admin - "Password": "MyMuseum2023!" //mdlf2021! + "Password": "MyInfoMate2023!" //mdlf2021! }, "SupportedLanguages": [ "FR", "NL", "EN", "DE", "IT", "ES", "PL", "CN", "AR", "UK" ] //"Urls": "http://[::]:80"