Configurations controller (to be tested) + wip for subsection
This commit is contained in:
parent
8c18825c5d
commit
20c35b2c8d
@ -60,7 +60,7 @@ namespace ManagerService.Controllers
|
||||
|
||||
foreach(var configuration in configurations)
|
||||
{
|
||||
List<string> sectionIds = _myInfoMateDbContext.Sections.Where(c => c.ConfigurationId == configuration.Id).Select(c => c.Id).ToList();
|
||||
List<string> sectionIds = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == configuration.Id && !s.IsSubSection).Select(s => s.Id).ToList();
|
||||
ConfigurationDTO configurationDTO = configuration.ToDTO(sectionIds);
|
||||
configurationDTOs.Add(configurationDTO);
|
||||
}
|
||||
@ -86,16 +86,16 @@ namespace ManagerService.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
Instance instance = _instanceService.GetByPinCode(pinCode);
|
||||
Instance instance = _myInfoMateDbContext.Instances.FirstOrDefault(i => i.PinCode == pinCode);
|
||||
|
||||
if (instance == null)
|
||||
throw new KeyNotFoundException("None instance is linked to this pin code");
|
||||
|
||||
List<Configuration> configurations = _configurationService.GetAll(instance.Id);
|
||||
List<Configuration> configurations = _myInfoMateDbContext.Configurations.Where(c => c.InstanceId == instance.Id).ToList();
|
||||
List<ConfigurationDTO> configurationDTOs = new List<ConfigurationDTO>();
|
||||
foreach (var configuration in configurations)
|
||||
{
|
||||
List<string> sectionIds = _sectionService.GetAllIdsFromConfiguration(configuration.Id);
|
||||
List<string> sectionIds = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == configuration.Id && !s.IsSubSection).Select(s => s.Id).ToList();
|
||||
configurationDTOs.Add(configuration.ToDTO(sectionIds));
|
||||
}
|
||||
|
||||
@ -120,16 +120,16 @@ namespace ManagerService.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
Configuration configuration = _configurationService.GetById(id);
|
||||
Configuration configuration = _myInfoMateDbContext.Configurations.FirstOrDefault(c => c.Id == id);
|
||||
|
||||
if (configuration == null)
|
||||
throw new KeyNotFoundException("This configuration was not found");
|
||||
|
||||
List<string> sectionIds = _sectionService.GetAllIdsFromConfiguration(id);
|
||||
List<string> sectionIds = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == id && !s.IsSubSection).Select(s => s.Id).ToList();
|
||||
|
||||
try
|
||||
{
|
||||
var weatherSections = _sectionService.GetAllWeatherSectionsFromConfiguration(id);
|
||||
var weatherSections = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == id && s.Type == SectionType.Weather && !s.IsSubSection).ToList(); // TODO TEST
|
||||
|
||||
foreach (var weatherSection in weatherSections)
|
||||
{
|
||||
@ -168,9 +168,10 @@ namespace ManagerService.Controllers
|
||||
|
||||
weatherDTO.updatedDate = DateTimeOffset.Now;
|
||||
weatherDTO.result = callResponseBody;
|
||||
weatherSection.Data = JsonConvert.SerializeObject(weatherDTO);
|
||||
weatherSection.Data = JsonConvert.SerializeObject(weatherDTO); // TODO update
|
||||
|
||||
_sectionService.Update(weatherSection.Id, weatherSection);
|
||||
_myInfoMateDbContext.SaveChanges();
|
||||
//_sectionService.Update(weatherSection.Id, weatherSection);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -249,9 +250,10 @@ namespace ManagerService.Controllers
|
||||
configuration.IsTablet = newConfiguration.isTablet;
|
||||
configuration.IsOffline = newConfiguration.isOffline;
|
||||
|
||||
Configuration configurationCreated = _configurationService.Create(configuration);
|
||||
_myInfoMateDbContext.Configurations.Add(configuration);
|
||||
//Configuration configurationCreated = _configurationService.Create(configuration);
|
||||
|
||||
return new OkObjectResult(configurationCreated.ToDTO(new List<string>())); // Empty list
|
||||
return new OkObjectResult(configuration.ToDTO(new List<string>())); // Empty list
|
||||
}
|
||||
catch (ArgumentNullException ex)
|
||||
{
|
||||
@ -284,7 +286,7 @@ namespace ManagerService.Controllers
|
||||
if (updatedConfiguration == null)
|
||||
throw new ArgumentNullException("configuration param is null");
|
||||
|
||||
Configuration configuration = _configurationService.GetById(updatedConfiguration.id);
|
||||
Configuration configuration = _myInfoMateDbContext.Configurations.FirstOrDefault(c => c.Id == updatedConfiguration.id);
|
||||
|
||||
if (configuration == null)
|
||||
throw new KeyNotFoundException("Configuration does not exist");
|
||||
@ -315,13 +317,14 @@ namespace ManagerService.Controllers
|
||||
configuration.RoundedValue = updatedConfiguration.roundedValue;
|
||||
configuration.ScreenPercentageSectionsMainPage = updatedConfiguration.screenPercentageSectionsMainPage;
|
||||
|
||||
Configuration configurationModified = _configurationService.Update(updatedConfiguration.id, configuration);
|
||||
//Configuration configurationModified = _configurationService.Update(updatedConfiguration.id, configuration);
|
||||
_myInfoMateDbContext.SaveChanges();
|
||||
|
||||
MqttClientService.PublishMessage($"config/{configurationModified.Id}", JsonConvert.SerializeObject(new PlayerMessageDTO() { configChanged = true }));
|
||||
|
||||
List<string> sectionIds = _sectionService.GetAllIdsFromConfiguration(configuration.Id);
|
||||
MqttClientService.PublishMessage($"config/{configuration.Id}", JsonConvert.SerializeObject(new PlayerMessageDTO() { configChanged = true }));
|
||||
|
||||
return new OkObjectResult(configurationModified.ToDTO(sectionIds));
|
||||
List<string> sectionIds = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == configuration.Id && !s.IsSubSection).Select(s => s.Id).ToList(); // _sectionService.GetAllIdsFromConfiguration(configuration.Id);
|
||||
|
||||
return new OkObjectResult(configuration.ToDTO(sectionIds));
|
||||
}
|
||||
catch (ArgumentNullException ex)
|
||||
{
|
||||
@ -354,19 +357,22 @@ namespace ManagerService.Controllers
|
||||
if (id == null)
|
||||
throw new ArgumentNullException("Configuration param is null");
|
||||
|
||||
if (!_configurationService.IsExist(id))
|
||||
var configuration = _myInfoMateDbContext.Configurations.FirstOrDefault(c => c.Id == id);
|
||||
|
||||
if (configuration == null)
|
||||
throw new KeyNotFoundException("Configuration does not exist");
|
||||
|
||||
_configurationService.Remove(id);
|
||||
_myInfoMateDbContext.Remove(configuration);
|
||||
|
||||
// Delete config for all devices
|
||||
List<Device> devices = _deviceService.GetAllWithConfig(id);
|
||||
List<Device> devices = _myInfoMateDbContext.Devices.Where(d => d.ConfigurationId == id).ToList();
|
||||
|
||||
foreach (var device in devices)
|
||||
{
|
||||
device.Configuration = null;
|
||||
device.ConfigurationId = null;
|
||||
_deviceService.Update(device.Id, device);
|
||||
_myInfoMateDbContext.SaveChanges();
|
||||
//_deviceService.Update(device.Id, device);
|
||||
}
|
||||
|
||||
MqttClientService.PublishMessage($"config/{id}", JsonConvert.SerializeObject(new PlayerMessageDTO() { configChanged = true, isDeleted = true }));
|
||||
@ -407,12 +413,12 @@ namespace ManagerService.Controllers
|
||||
if (id == null)
|
||||
throw new ArgumentNullException("Configuration param is null");
|
||||
|
||||
Configuration configuration = _configurationService.GetById(id);
|
||||
Configuration configuration = _myInfoMateDbContext.Configurations.FirstOrDefault(c => c.Id == id);
|
||||
|
||||
if (configuration == null)
|
||||
throw new KeyNotFoundException("Configuration does not exist");
|
||||
|
||||
List<SectionDTO> sectionDTOs = _sectionService.GetAllFromConfigurationEvenSubsection(configuration.Id).Select(s => s.ToDTO()).ToList();
|
||||
List<SectionDTO> sectionDTOs = _myInfoMateDbContext.Sections.Where(s => s.ConfigurationId == configuration.Id).Select(s => s.ToDTO()).ToList();
|
||||
List<ResourceDTO> resourceDTOs = new List<ResourceDTO>();
|
||||
|
||||
if (configuration.ImageId != null)
|
||||
@ -634,7 +640,7 @@ namespace ManagerService.Controllers
|
||||
if (exportConfiguration == null)
|
||||
throw new ArgumentNullException("File to import is null");
|
||||
|
||||
Configuration configuration = _configurationService.GetById(exportConfiguration.id);
|
||||
Configuration configuration = _myInfoMateDbContext.Configurations.FirstOrDefault(c => c.Id == exportConfiguration.id);
|
||||
if (configuration != null)
|
||||
throw new InvalidOperationException("Configuration already exist in the system");
|
||||
|
||||
@ -673,9 +679,12 @@ namespace ManagerService.Controllers
|
||||
configuration.RoundedValue = exportConfiguration.roundedValue;
|
||||
configuration.ScreenPercentageSectionsMainPage = exportConfiguration.screenPercentageSectionsMainPage;
|
||||
|
||||
_configurationService.Create(configuration);
|
||||
_myInfoMateDbContext.Configurations.Add(configuration);
|
||||
//_configurationService.Create(configuration);
|
||||
|
||||
foreach (var section in exportConfiguration.sections.Where(s => !_sectionService.IsExist(s.id)))
|
||||
var sectionsAlreadyInDB = _myInfoMateDbContext.Sections.Where(s => !exportConfiguration.sections.Select(s => s.id).Contains(s.Id)).Select(s => s.Id).ToList();
|
||||
// TODO TEST
|
||||
foreach (var section in exportConfiguration.sections.Where(s => !sectionsAlreadyInDB.Contains(s.id)))
|
||||
{
|
||||
Section newSection = new Section();
|
||||
newSection.Id = section.id;
|
||||
@ -703,7 +712,8 @@ namespace ManagerService.Controllers
|
||||
createResource(exportConfiguration.resources.Where(r => r.id == newSection.ImageId).FirstOrDefault());
|
||||
}
|
||||
|
||||
_sectionService.Create(newSection);
|
||||
_myInfoMateDbContext.Sections.Add(newSection);
|
||||
//_sectionService.Create(newSection);
|
||||
|
||||
switch (section.type)
|
||||
{
|
||||
@ -867,14 +877,17 @@ namespace ManagerService.Controllers
|
||||
resource.DateCreation = resourceExport.dateCreation;
|
||||
//resource.Data = resourceExport.data;
|
||||
|
||||
if (!_resourceService.IsExist(resourceExport.id))
|
||||
_resourceService.Create(resource);
|
||||
var resourceInDb = _myInfoMateDbContext.Resources.FirstOrDefault(r => r.Id == resourceExport.id);
|
||||
|
||||
if (resourceInDb == null)
|
||||
_myInfoMateDbContext.Resources.Add(resource);
|
||||
//_resourceService.Create(resource);
|
||||
}
|
||||
}
|
||||
|
||||
private List<ResourceDTO> addResourceToList(List<ResourceDTO> resourceDTOs, string resourceId) {
|
||||
if (!resourceDTOs.Select(r => r.id).Contains(resourceId)) {
|
||||
Resource resource = _resourceService.GetById(resourceId);
|
||||
Resource resource = _myInfoMateDbContext.Resources.FirstOrDefault(r => r.Id == resourceId);
|
||||
|
||||
if (resource != null && !resourceDTOs.Any(r => r.id == resource.Id)) {
|
||||
resourceDTOs.Add(resource.ToDTO());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user