redirect to 1.2.0 + update entities and other for visitNamur
This commit is contained in:
parent
17f9cd2334
commit
cc89f7b717
@ -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; }
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ namespace Manager.Interfaces.DTO
|
||||
{
|
||||
public class AgendaDTO
|
||||
{
|
||||
//public string Title { get; set; } // Dictionary<string, object> 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
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<TranslationDTO> audioIds { get; set; }
|
||||
public bool isReadAudioAuto { get; set; } // MyVisit - True for audio play when open the article / false otherwise
|
||||
public List<ImageDTO> images { get; set; } // Will check if ok or if we need need type of image (simpler)
|
||||
}
|
||||
|
||||
public class ImageDTO
|
||||
{
|
||||
public List<TranslationDTO> title { get; set; }
|
||||
public List<TranslationDTO> 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<ContentDTO> contents { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ namespace Manager.Interfaces.DTO
|
||||
{
|
||||
public class PdfDTO
|
||||
{
|
||||
//public string Title { get; set; } // Dictionary<string, object> 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
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,6 @@ namespace Manager.Interfaces.DTO
|
||||
{
|
||||
public List<TranslationDTO> messageDebut { get; set; }
|
||||
public List<TranslationDTO> messageFin { get; set; }
|
||||
public ImageDTO image { get; set; }
|
||||
public ContentDTO image { get; set; } // But only image is possible
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
};
|
||||
|
||||
@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Resource Information
|
||||
/// </summary>
|
||||
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; }
|
||||
}
|
||||
}
|
||||
@ -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<ConfigurationController> _logger;
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public ConfigurationController(IConfiguration configuration, ILogger<ConfigurationController> logger, ConfigurationDatabaseService configurationService, InstanceDatabaseService instanceService, SectionDatabaseService sectionService, ResourceDatabaseService resourceService, ResourceDataDatabaseService resourceDataService, DeviceDatabaseService deviceService)
|
||||
public ConfigurationController(IConfiguration configuration, ILogger<ConfigurationController> 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<ArticleDTO>(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<ArticleDTO>(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<ResourceDTO> addResourceToList(List<ResourceDTO> 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;
|
||||
|
||||
@ -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<ResourceController> _logger;
|
||||
@ -36,11 +36,10 @@ namespace ManagerService.Controllers
|
||||
private static int MaxWidth = 1024;
|
||||
private static int MaxHeight = 1024;
|
||||
|
||||
public ResourceController(ILogger<ResourceController> logger, ResourceDatabaseService resourceService, ResourceDataDatabaseService resourceDataService, SectionDatabaseService sectionService, ConfigurationDatabaseService configurationService)
|
||||
public ResourceController(ILogger<ResourceController> 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
|
||||
/// <summary>
|
||||
/// Upload a specific resource (picture or video)
|
||||
/// </summary>
|
||||
@ -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<ArticleDTO>(section.Data);
|
||||
List<ImageDTO> imagesArticleToKeep = new List<ImageDTO>();
|
||||
foreach (var image in articleDTO.images)
|
||||
List<ContentDTO> contentsArticleToKeep = new List<ContentDTO>();
|
||||
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 };
|
||||
|
||||
|
||||
@ -414,7 +414,7 @@ namespace ManagerService.Controllers
|
||||
break;
|
||||
case SectionType.Article:
|
||||
ArticleDTO articleDTO = new ArticleDTO();
|
||||
articleDTO.images = new List<ImageDTO>();
|
||||
articleDTO.contents = new List<ContentDTO>();
|
||||
articleDTO.content = contentArticle;
|
||||
articleDTO.audioIds = LanguageInit.Init("Audio", languages, true);
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -9,7 +9,7 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
||||
<DockerPublish>true</DockerPublish>
|
||||
<RegistryUrl>https://registry.unov.be</RegistryUrl>
|
||||
<UserName>admin</UserName>
|
||||
<PublishImageTag>latest</PublishImageTag>
|
||||
<PublishImageTag>version-2.0.0</PublishImageTag>
|
||||
<PublishProvider>ContainerRegistry</PublishProvider>
|
||||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||
|
||||
@ -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<ResourceData> _ResourcesData;
|
||||
|
||||
public ResourceDataDatabaseService(IConfiguration config)
|
||||
{
|
||||
var client = new MongoClient(config.GetConnectionString("TabletDb"));
|
||||
var database = client.GetDatabase("TabletDb");
|
||||
_ResourcesData = database.GetCollection<ResourceData>("ResourcesData");
|
||||
}
|
||||
public List<ResourceData> GetAll(string instanceId)
|
||||
{
|
||||
return _ResourcesData.Find(r => r.InstanceId == instanceId).ToList();
|
||||
}
|
||||
|
||||
public ResourceData GetById(string id)
|
||||
{
|
||||
return _ResourcesData.Find<ResourceData>(r => r.Id == id).FirstOrDefault();
|
||||
}
|
||||
|
||||
public ResourceData GetByResourceId(string id)
|
||||
{
|
||||
return _ResourcesData.Find<ResourceData>(r => r.ResourceId == id).FirstOrDefault();
|
||||
}
|
||||
|
||||
public bool IsExist(string id)
|
||||
{
|
||||
return _ResourcesData.Find<ResourceData>(r => r.Id == id).FirstOrDefault() != null ? true : false;
|
||||
}
|
||||
|
||||
public bool IsExistResourceId(string id)
|
||||
{
|
||||
return _ResourcesData.Find<ResourceData>(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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -142,7 +142,6 @@ namespace ManagerService
|
||||
services.AddScoped<SectionDatabaseService>();
|
||||
services.AddScoped<ConfigurationDatabaseService>();
|
||||
services.AddScoped<ResourceDatabaseService>();
|
||||
services.AddScoped<ResourceDataDatabaseService>();
|
||||
services.AddScoped<LanguageInit>();
|
||||
services.AddScoped<DeviceDatabaseService>();
|
||||
services.AddScoped<InstanceDatabaseService>();
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user