Add device controller + DeviceDetailDTO + create section (all in Data as JSON) + delete all section from config
This commit is contained in:
parent
d162b2f15d
commit
65e7c7f890
@ -9,7 +9,16 @@ namespace Manager.Interfaces.DTO
|
|||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string IpAddress { get; set; }
|
public string IpAddress { get; set; }
|
||||||
|
public string ConfigurationId { get; set; }
|
||||||
public bool Connected{ get; set; }
|
public bool Connected{ get; set; }
|
||||||
public DateTime DateCreation{ get; set; }
|
public DateTime DateCreation{ get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class DeviceDetailDTO : DeviceDTO
|
||||||
|
{
|
||||||
|
public string ConnectionLevel { get; set; }
|
||||||
|
public DateTime LastConnectionLevel { get; set; }
|
||||||
|
public string BatteryLevel { get; set; }
|
||||||
|
public DateTime LastBatteryLevel { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,8 +16,8 @@ namespace Manager.Interfaces.DTO
|
|||||||
public class GeoPointDTO
|
public class GeoPointDTO
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public Dictionary<String, object> Title { get; set; } // Dictionary<string, object> with all languages
|
public string Title { get; set; } // Dictionary<string, object> with all languages
|
||||||
public Dictionary<String, object> Description { get; set; } // Dictionary<string, object> with all languages
|
public string Description { get; set; } // Dictionary<string, object> with all languages
|
||||||
public string Image { get; set; } // url to ressource id (local) or on internet
|
public string Image { get; set; } // url to ressource id (local) or on internet
|
||||||
public string ImageType { get; set; } // url or ressource
|
public string ImageType { get; set; } // url or ressource
|
||||||
public string Text { get; set; } // Dictionary<string, object> with all languages
|
public string Text { get; set; } // Dictionary<string, object> with all languages
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Manager.Interfaces.DTO
|
namespace Manager.Interfaces.DTO
|
||||||
{
|
{
|
||||||
public class MenuDTO : SectionDTO
|
public class MenuDTO
|
||||||
{
|
{
|
||||||
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
||||||
public List<SectionDTO> Sections { get; set; }
|
public List<SectionDTO> Sections { get; set; }
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Manager.Interfaces.DTO
|
namespace Manager.Interfaces.DTO
|
||||||
{
|
{
|
||||||
public class SliderDTO : SectionDTO
|
public class SliderDTO
|
||||||
{
|
{
|
||||||
public List<ImageDTO> Images { get; set; }
|
public List<ImageDTO> Images { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Manager.Interfaces.DTO
|
namespace Manager.Interfaces.DTO
|
||||||
{
|
{
|
||||||
public class VideoDTO : SectionDTO
|
public class VideoDTO
|
||||||
{
|
{
|
||||||
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
||||||
public string Source { get; set; } // url to ressource id (local) or on internet
|
public string Source { get; set; } // url to ressource id (local) or on internet
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Manager.Interfaces.DTO
|
namespace Manager.Interfaces.DTO
|
||||||
{
|
{
|
||||||
public class WebDTO : SectionDTO
|
public class WebDTO
|
||||||
{
|
{
|
||||||
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
//public string Title { get; set; } // Dictionary<string, object> with all languages
|
||||||
public string Source { get; set; } // url to ressource id (local) or on internet
|
public string Source { get; set; } // url to ressource id (local) or on internet
|
||||||
|
|||||||
@ -56,6 +56,24 @@ namespace Manager.Interfaces.Models
|
|||||||
Name = Name,
|
Name = Name,
|
||||||
IpAddress = IpAddress,
|
IpAddress = IpAddress,
|
||||||
Connected = Connected,
|
Connected = Connected,
|
||||||
|
ConfigurationId = ConfigurationId,
|
||||||
|
DateCreation = DateCreation
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeviceDetailDTO ToDetailDTO()
|
||||||
|
{
|
||||||
|
return new DeviceDetailDTO()
|
||||||
|
{
|
||||||
|
Id = Id,
|
||||||
|
Name = Name,
|
||||||
|
IpAddress = IpAddress,
|
||||||
|
Connected = Connected,
|
||||||
|
ConfigurationId = ConfigurationId,
|
||||||
|
ConnectionLevel = ConnectionLevel,
|
||||||
|
LastConnectionLevel = LastConnectionLevel,
|
||||||
|
BatteryLevel = BatteryLevel,
|
||||||
|
LastBatteryLevel = LastBatteryLevel,
|
||||||
DateCreation = DateCreation
|
DateCreation = DateCreation
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,10 +30,10 @@ namespace Manager.Interfaces.Models
|
|||||||
{
|
{
|
||||||
return new MapDTO()
|
return new MapDTO()
|
||||||
{
|
{
|
||||||
Id = Id,
|
/*Id = Id,
|
||||||
Label = Label,
|
Label = Label,
|
||||||
Type = Type,
|
Type = Type,
|
||||||
ImageId = ImageId,
|
ImageId = ImageId,*/
|
||||||
MapType = MapType,
|
MapType = MapType,
|
||||||
Zoom = Zoom,
|
Zoom = Zoom,
|
||||||
Points = Points.Select(p => p.ToDTO()).ToList(),
|
Points = Points.Select(p => p.ToDTO()).ToList(),
|
||||||
|
|||||||
@ -20,10 +20,10 @@ namespace Manager.Interfaces.Models
|
|||||||
{
|
{
|
||||||
return new SliderDTO()
|
return new SliderDTO()
|
||||||
{
|
{
|
||||||
Id = Id,
|
/*Id = Id,
|
||||||
Label = Label,
|
Label = Label,
|
||||||
Type = Type,
|
Type = Type,
|
||||||
ImageId = ImageId,
|
ImageId = ImageId,*/
|
||||||
Images = Images.Select(p => p.ToDTO()).ToList(),
|
Images = Images.Select(p => p.ToDTO()).ToList(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
217
ManagerService/Controllers/DeviceController.cs
Normal file
217
ManagerService/Controllers/DeviceController.cs
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Manager.Interfaces.DTO;
|
||||||
|
using Manager.Interfaces.Models;
|
||||||
|
using Manager.Services;
|
||||||
|
using ManagerService.Service.Services;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using NSwag.Annotations;
|
||||||
|
|
||||||
|
namespace ManagerService.Controllers
|
||||||
|
{
|
||||||
|
[Authorize] // TODO Add ROLES (Roles = "Admin")
|
||||||
|
[ApiController, Route("api/[controller]")]
|
||||||
|
[OpenApiTag("Device", Description = "Device management")]
|
||||||
|
public class DeviceController : ControllerBase
|
||||||
|
{
|
||||||
|
private DeviceDatabaseService _deviceService;
|
||||||
|
private readonly ILogger<DeviceController> _logger;
|
||||||
|
|
||||||
|
public DeviceController(ILogger<DeviceController> logger, DeviceDatabaseService deviceService)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_deviceService = deviceService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get a list of all devices
|
||||||
|
/// </summary>
|
||||||
|
[ProducesResponseType(typeof(List<DeviceDTO>), 200)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[HttpGet]
|
||||||
|
public ObjectResult Get()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<Device> devices = _deviceService.GetAll();
|
||||||
|
|
||||||
|
return new OkObjectResult(devices.Select(d => d.ToDTO()));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get a specific device
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">id device</param>
|
||||||
|
[AllowAnonymous]
|
||||||
|
[ProducesResponseType(typeof(DeviceDetailDTO), 200)]
|
||||||
|
[ProducesResponseType(typeof(string), 404)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[HttpGet("{id}/detail")]
|
||||||
|
public ObjectResult GetDetail(string id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Device device = _deviceService.GetById(id);
|
||||||
|
|
||||||
|
if (device == null)
|
||||||
|
throw new KeyNotFoundException("This device was not found");
|
||||||
|
|
||||||
|
return new OkObjectResult(device.ToDetailDTO());
|
||||||
|
}
|
||||||
|
catch (KeyNotFoundException ex)
|
||||||
|
{
|
||||||
|
return new NotFoundObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a new device
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newRessource">New device info</param>
|
||||||
|
[ProducesResponseType(typeof(DeviceDetailDTO), 200)]
|
||||||
|
[ProducesResponseType(typeof(string), 400)]
|
||||||
|
[ProducesResponseType(typeof(string), 409)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[HttpPost]
|
||||||
|
public ObjectResult Create([FromBody] DeviceDetailDTO newDevice)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (newDevice == null)
|
||||||
|
throw new ArgumentNullException("Device param is null");
|
||||||
|
|
||||||
|
// Todo add some verification ?
|
||||||
|
Device device = new Device();
|
||||||
|
device.Name = newDevice.Name;
|
||||||
|
device.IpAddress = newDevice.IpAddress;
|
||||||
|
device.Connected = newDevice.Connected;
|
||||||
|
device.ConnectionLevel = newDevice.ConnectionLevel;
|
||||||
|
device.LastConnectionLevel = newDevice.LastConnectionLevel;
|
||||||
|
device.BatteryLevel = newDevice.BatteryLevel;
|
||||||
|
device.LastBatteryLevel = newDevice.LastBatteryLevel;
|
||||||
|
device.DateCreation = DateTime.Now;
|
||||||
|
|
||||||
|
Device deviceCreated = _deviceService.Create(device);
|
||||||
|
|
||||||
|
return new OkObjectResult(deviceCreated.ToDTO());
|
||||||
|
}
|
||||||
|
catch (ArgumentNullException ex)
|
||||||
|
{
|
||||||
|
return new BadRequestObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (InvalidOperationException ex)
|
||||||
|
{
|
||||||
|
return new ConflictObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update a device
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="updatedDevice">Device to update</param>
|
||||||
|
[ProducesResponseType(typeof(DeviceDetailDTO), 200)]
|
||||||
|
[ProducesResponseType(typeof(string), 400)]
|
||||||
|
[ProducesResponseType(typeof(string), 404)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[HttpPut]
|
||||||
|
public ObjectResult Update([FromBody] DeviceDetailDTO updatedDevice)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (updatedDevice == null)
|
||||||
|
throw new ArgumentNullException("Device param is null");
|
||||||
|
|
||||||
|
Device device = _deviceService.GetById(updatedDevice.Id);
|
||||||
|
|
||||||
|
if (device == null)
|
||||||
|
throw new KeyNotFoundException("Device does not exist");
|
||||||
|
|
||||||
|
// Todo add some verification ?
|
||||||
|
device.Name = updatedDevice.Name;
|
||||||
|
device.IpAddress = updatedDevice.IpAddress;
|
||||||
|
device.Connected = updatedDevice.Connected;
|
||||||
|
device.ConnectionLevel = updatedDevice.ConnectionLevel;
|
||||||
|
device.LastConnectionLevel = updatedDevice.LastConnectionLevel;
|
||||||
|
device.BatteryLevel = updatedDevice.BatteryLevel;
|
||||||
|
device.LastBatteryLevel = updatedDevice.LastBatteryLevel;
|
||||||
|
|
||||||
|
Device deviceModified = _deviceService.Update(updatedDevice.Id, device);
|
||||||
|
|
||||||
|
return new OkObjectResult(deviceModified.ToDTO());
|
||||||
|
}
|
||||||
|
catch (ArgumentNullException ex)
|
||||||
|
{
|
||||||
|
return new BadRequestObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (KeyNotFoundException ex)
|
||||||
|
{
|
||||||
|
return new NotFoundObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delete a device
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">Id of device to delete</param>
|
||||||
|
[ProducesResponseType(typeof(string), 202)]
|
||||||
|
[ProducesResponseType(typeof(string), 400)]
|
||||||
|
[ProducesResponseType(typeof(string), 404)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[HttpDelete("{id}")]
|
||||||
|
public ObjectResult Delete(string id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (id == null)
|
||||||
|
throw new ArgumentNullException("Device param is null");
|
||||||
|
|
||||||
|
if (!_deviceService.IsExist(id))
|
||||||
|
throw new KeyNotFoundException("Device does not exist");
|
||||||
|
|
||||||
|
_deviceService.Remove(id);
|
||||||
|
|
||||||
|
return new ObjectResult("The device has been deleted") { StatusCode = 202 };
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (ArgumentNullException ex)
|
||||||
|
{
|
||||||
|
return new BadRequestObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (KeyNotFoundException ex)
|
||||||
|
{
|
||||||
|
return new NotFoundObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -77,6 +77,35 @@ namespace ManagerService.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delete all section from a specific configuration
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">configuration id</param>
|
||||||
|
[ProducesResponseType(typeof(string), 202)]
|
||||||
|
[ProducesResponseType(typeof(string), 500)]
|
||||||
|
[ProducesResponseType(typeof(string), 400)]
|
||||||
|
[HttpDelete("configuration/{id}")]
|
||||||
|
public ObjectResult DeleteAllForConfiguration(string id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (id == null)
|
||||||
|
throw new ArgumentNullException("Param is null");
|
||||||
|
|
||||||
|
_sectionService.DeleteAllFromConfiguration(id);
|
||||||
|
|
||||||
|
return new ObjectResult("All section from the specified configuration has been deleted") { StatusCode = 202 };
|
||||||
|
}
|
||||||
|
catch (ArgumentNullException ex)
|
||||||
|
{
|
||||||
|
return new BadRequestObjectResult(ex.Message) { };
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ObjectResult(ex.Message) { StatusCode = 500 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get a list of all subsection (summary) of a specific section
|
/// Get a list of all subsection (summary) of a specific section
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -201,43 +230,49 @@ namespace ManagerService.Controllers
|
|||||||
section.ParentId = null;
|
section.ParentId = null;
|
||||||
section.Type = newSection.Type;
|
section.Type = newSection.Type;
|
||||||
|
|
||||||
|
// Preparation
|
||||||
|
Dictionary<string, object> titles = new Dictionary<string, object>();
|
||||||
|
Dictionary<string, object> descriptions = new Dictionary<string, object>();
|
||||||
|
List<string> languages = _configurationService.GetById(newSection.ConfigurationId).Languages;
|
||||||
|
|
||||||
|
var mapDTO = new MapDTO(); // For menu dto
|
||||||
|
var sliderDTO = new SliderDTO(); // For menu dto
|
||||||
|
|
||||||
|
foreach (var language in languages)
|
||||||
|
{
|
||||||
|
switch (language.ToUpper())
|
||||||
|
{
|
||||||
|
case "FR":
|
||||||
|
titles.Add(language, "Titre en français");
|
||||||
|
descriptions.Add(language, "Description en français");
|
||||||
|
break;
|
||||||
|
case "EN":
|
||||||
|
titles.Add(language, "Title in english");
|
||||||
|
descriptions.Add(language, "Description en anglais");
|
||||||
|
break;
|
||||||
|
case "NL":
|
||||||
|
titles.Add(language, "Titre in dutch");
|
||||||
|
descriptions.Add(language, "Description en néerlandais");
|
||||||
|
break;
|
||||||
|
case "DE":
|
||||||
|
titles.Add(language, "Titre en allemand");
|
||||||
|
descriptions.Add(language, "Description en allemand");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (newSection.Type) {
|
switch (newSection.Type) {
|
||||||
case SectionType.Map:
|
case SectionType.Map:
|
||||||
MapDTO mapDTO = new MapDTO();
|
mapDTO = new MapDTO();
|
||||||
mapDTO.Icon = "";
|
mapDTO.Icon = "";
|
||||||
mapDTO.MapType = MapType.hybrid;
|
mapDTO.MapType = MapType.hybrid;
|
||||||
mapDTO.Zoom = 18;
|
mapDTO.Zoom = 18;
|
||||||
List<string> languages = _configurationService.GetById(newSection.ConfigurationId).Languages;
|
|
||||||
Dictionary<string, object> titles = new Dictionary<string, object>();
|
|
||||||
Dictionary<string, object> descriptions = new Dictionary<string, object>();
|
|
||||||
|
|
||||||
foreach (var language in languages) {
|
|
||||||
switch (language.ToUpper()) {
|
|
||||||
case "FR":
|
|
||||||
titles.Add(language, "Titre en français");
|
|
||||||
descriptions.Add(language, "Description en français");
|
|
||||||
break;
|
|
||||||
case "EN":
|
|
||||||
titles.Add(language, "Title in english");
|
|
||||||
descriptions.Add(language, "Description en anglais");
|
|
||||||
break;
|
|
||||||
case "NL":
|
|
||||||
titles.Add(language, "Titre in dutch");
|
|
||||||
descriptions.Add(language, "Description en néerlandais");
|
|
||||||
break;
|
|
||||||
case "DE":
|
|
||||||
titles.Add(language, "Titre en allemand");
|
|
||||||
descriptions.Add(language, "Description en allemand");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mapDTO.Points = new List<GeoPointDTO>() {
|
mapDTO.Points = new List<GeoPointDTO>() {
|
||||||
new GeoPointDTO() {
|
new GeoPointDTO() {
|
||||||
Id = 0,
|
Id = 0,
|
||||||
Title = titles,
|
Title = JsonConvert.SerializeObject(titles),
|
||||||
Description = descriptions,
|
Description = JsonConvert.SerializeObject(descriptions),
|
||||||
Image = "", // TODO sample
|
Image = "", // TODO sample
|
||||||
ImageType = "url", // TODO
|
ImageType = "url", // TODO
|
||||||
Latitude = "50.416639",
|
Latitude = "50.416639",
|
||||||
@ -246,36 +281,59 @@ namespace ManagerService.Controllers
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
section.Data = JsonConvert.SerializeObject(mapDTO); ; // Include all info from specific section as JSON
|
section.Data = JsonConvert.SerializeObject(mapDTO); // Include all info from specific section as JSON
|
||||||
break;
|
break;
|
||||||
case SectionType.Slider:
|
case SectionType.Slider:
|
||||||
section.Data = newSection.Data; // Include all info from specific section as JSON
|
sliderDTO = new SliderDTO();
|
||||||
|
ImageDTO imageDTO = new ImageDTO();
|
||||||
|
imageDTO.Title = JsonConvert.SerializeObject(titles);
|
||||||
|
imageDTO.Description = JsonConvert.SerializeObject(descriptions);
|
||||||
|
imageDTO.Source = "";
|
||||||
|
sliderDTO.Images.Add(imageDTO);
|
||||||
|
|
||||||
|
section.Data = JsonConvert.SerializeObject(sliderDTO); // Include all info from specific section as JSON
|
||||||
break;
|
break;
|
||||||
case SectionType.Video:
|
case SectionType.Video:
|
||||||
section.Data = newSection.Data; // Include all info from specific section as JSON
|
VideoDTO videoDTO = new VideoDTO();
|
||||||
|
videoDTO.Source = "";
|
||||||
|
section.Data = JsonConvert.SerializeObject(videoDTO); // Include all info from specific section as JSON
|
||||||
break;
|
break;
|
||||||
case SectionType.Web:
|
case SectionType.Web:
|
||||||
section.Data = newSection.Data; // Include all info from specific section as JSON
|
WebDTO webDTO = new WebDTO();
|
||||||
|
webDTO.Source = "";
|
||||||
|
section.Data = JsonConvert.SerializeObject(webDTO); // Include all info from specific section as JSON
|
||||||
break;
|
break;
|
||||||
case SectionType.Menu:
|
case SectionType.Menu:
|
||||||
section.Data = newSection.Data; // Include all info from specific section as JSON
|
MenuDTO menuDTO = new MenuDTO();
|
||||||
|
menuDTO.Sections = new List<SectionDTO>();
|
||||||
|
/*SectionDTO section0DTO = new SectionDTO();
|
||||||
|
section0DTO.IsSubSection = true;
|
||||||
|
section0DTO.Label = newSection.Label;
|
||||||
|
section0DTO.ImageId = newSection.ImageId;
|
||||||
|
section0DTO.ConfigurationId = newSection.ConfigurationId;
|
||||||
|
section0DTO.DateCreation = DateTime.Now;
|
||||||
|
section0DTO.ParentId = null;
|
||||||
|
section0DTO.Type = SectionType.Map;
|
||||||
|
section0DTO.Data = JsonConvert.SerializeObject(mapDTO);
|
||||||
|
|
||||||
|
|
||||||
|
SectionDTO section1DTO = new SectionDTO();
|
||||||
|
section0DTO.IsSubSection = true;
|
||||||
|
section0DTO.Label = newSection.Label;
|
||||||
|
section0DTO.ImageId = newSection.ImageId;
|
||||||
|
section0DTO.ConfigurationId = newSection.ConfigurationId;
|
||||||
|
section0DTO.DateCreation = DateTime.Now;
|
||||||
|
section0DTO.ParentId = null;
|
||||||
|
section0DTO.Type = SectionType.Slider;
|
||||||
|
section1DTO.IsSubSection = true;
|
||||||
|
section1DTO.Data = JsonConvert.SerializeObject(sliderDTO);*/
|
||||||
|
|
||||||
|
/*menuDTO.Sections.Add(section0DTO);
|
||||||
|
menuDTO.Sections.Add(section1DTO);*/
|
||||||
|
section.Data = JsonConvert.SerializeObject(menuDTO); // Include all info from specific section as JSON
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*section.MapType = newSectionMap.MapType;
|
|
||||||
section.Zoom = newSectionMap.Zoom;
|
|
||||||
section.Icon = newSectionMap.Icon;
|
|
||||||
section.Points = newSectionMap.Points.Select(p =>
|
|
||||||
new GeoPoint() {
|
|
||||||
Id = p.Id,
|
|
||||||
Title = p.Title,
|
|
||||||
Description = p.Description,
|
|
||||||
Image = p.Image,
|
|
||||||
Text = p.Text,
|
|
||||||
Latitude = p.Latitude,
|
|
||||||
Longitude = p.Longitude
|
|
||||||
}).ToList();*/
|
|
||||||
|
|
||||||
Section sectionCreated = _sectionService.Create(section);
|
Section sectionCreated = _sectionService.Create(section);
|
||||||
|
|
||||||
return new OkObjectResult(sectionCreated.ToDTO());
|
return new OkObjectResult(sectionCreated.ToDTO());
|
||||||
|
|||||||
60
ManagerService/Services/DeviceDatabaseService.cs
Normal file
60
ManagerService/Services/DeviceDatabaseService.cs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
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 DeviceDatabaseService
|
||||||
|
{
|
||||||
|
private readonly IMongoCollection<Device> _Devices;
|
||||||
|
|
||||||
|
public DeviceDatabaseService(IConfiguration config)
|
||||||
|
{
|
||||||
|
var client = new MongoClient(config.GetConnectionString("TabletDb"));
|
||||||
|
var database = client.GetDatabase("TabletDb");
|
||||||
|
_Devices = database.GetCollection<Device>("Devices");
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Device> GetAll()
|
||||||
|
{
|
||||||
|
return _Devices.Find(d => true).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Device> GetAllConnected()
|
||||||
|
{
|
||||||
|
return _Devices.Find(d => d.Connected).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Device GetById(string id)
|
||||||
|
{
|
||||||
|
return _Devices.Find<Device>(d => d.Id == id).FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsExist(string id)
|
||||||
|
{
|
||||||
|
return _Devices.Find<Device>(d => d.Id == id).FirstOrDefault() != null ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Device Create(Device device)
|
||||||
|
{
|
||||||
|
_Devices.InsertOne(device);
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Device Update(string id, Device deviceIn)
|
||||||
|
{
|
||||||
|
_Devices.ReplaceOne(d => d.Id == id, deviceIn);
|
||||||
|
return deviceIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove(string id)
|
||||||
|
{
|
||||||
|
_Devices.DeleteOne(d => d.Id == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -61,5 +61,10 @@ namespace Manager.Services
|
|||||||
_Sections.DeleteOne(s => s.Id == id);
|
_Sections.DeleteOne(s => s.Id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DeleteAllFromConfiguration(string configurationId)
|
||||||
|
{
|
||||||
|
_Sections.DeleteMany(s => s.ConfigurationId == configurationId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,6 +104,7 @@ namespace ManagerService
|
|||||||
services.AddScoped<SectionDatabaseService>();
|
services.AddScoped<SectionDatabaseService>();
|
||||||
services.AddScoped<ConfigurationDatabaseService>();
|
services.AddScoped<ConfigurationDatabaseService>();
|
||||||
services.AddScoped<RessourceDatabaseService>();
|
services.AddScoped<RessourceDatabaseService>();
|
||||||
|
services.AddScoped<DeviceDatabaseService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user