diff --git a/MyCore/Controllers/Devices/DeviceController.cs b/MyCore/Controllers/Devices/DeviceController.cs
index 1ec853c..5e6e629 100644
--- a/MyCore/Controllers/Devices/DeviceController.cs
+++ b/MyCore/Controllers/Devices/DeviceController.cs
@@ -41,16 +41,22 @@ namespace MyCore.Controllers.Devices
///
/// Get all devices summary
///
+ /// Id of user
[ProducesResponseType(typeof(List), 200)]
[HttpGet]
- public ObjectResult GetAll()
+ public ObjectResult GetAll(string userId)
{
try
{
- List Devices = _DeviceDatabaseService.GetAll();
+ List Devices = _DeviceDatabaseService.GetAll(userId);
List devicesSummaryDTO = Devices.Select(d => d.ToSummaryDTO()).ToList();
+ foreach (var device in devicesSummaryDTO)
+ {
+ device.ProviderName = _ProviderDatabaseService.GetById(userId, device.ProviderId).Name;
+ }
+
return new OkObjectResult(devicesSummaryDTO);
}
catch (Exception ex)
@@ -62,10 +68,11 @@ namespace MyCore.Controllers.Devices
///
/// Get a specific device info
///
+ /// Id of user
/// id of device
[ProducesResponseType(typeof(DeviceDetailDTO), 200)]
[HttpGet("{deviceId}")]
- public ObjectResult GetDetail(string deviceId)
+ public ObjectResult GetDetail(string userId, string deviceId)
{
try
{
@@ -89,11 +96,10 @@ namespace MyCore.Controllers.Devices
{
try
{
-
if (deviceDetailDTO == null)
throw new KeyNotFoundException("Device is null");
- DeviceDetailDTO deviceCreated = DeviceService.CreateOrUpdate(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, deviceDetailDTO, true);
+ DeviceDetailDTO deviceCreated = DeviceService.CreateOrUpdate(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, deviceDetailDTO.UserId, deviceDetailDTO, true);
return new OkObjectResult(deviceCreated);
@@ -133,7 +139,7 @@ namespace MyCore.Controllers.Devices
if (provider == null)
throw new KeyNotFoundException("Provider id is null");
- List devicesCreated = await DeviceService.CreateFromProvider(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, provider);
+ List devicesCreated = await DeviceService.CreateFromProvider(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, userId, provider);
return new OkObjectResult(devicesCreated);
}
@@ -162,18 +168,18 @@ namespace MyCore.Controllers.Devices
///
/// Update a device
///
- /// Device Id
+ /// Device Id
/// Device to update
[ProducesResponseType(typeof(DeviceDetailDTO), 200)]
[HttpPut("{deviceId}")]
- public ObjectResult Update(string deviceId, [FromBody] DeviceDetailDTO deviceDetailDTO)
+ public ObjectResult Update(string userId, [FromBody] DeviceDetailDTO deviceDetailDTO)
{
try
{
- if (!_DeviceDatabaseService.IsExist(deviceId))
+ if (!_DeviceDatabaseService.IsExist(deviceDetailDTO.Id))
throw new KeyNotFoundException("Device does not exist");
- DeviceDetailDTO deviceUpdated = DeviceService.CreateOrUpdate(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, deviceDetailDTO, false);
+ DeviceDetailDTO deviceUpdated = DeviceService.CreateOrUpdate(this._DeviceDatabaseService, this._ProviderDatabaseService, this._LocationDatabaseService, userId, deviceDetailDTO, false);
return new OkObjectResult(deviceUpdated);
}
@@ -206,5 +212,25 @@ namespace MyCore.Controllers.Devices
return new ObjectResult(ex.Message) { StatusCode = 500 };
}
}
+
+ ///
+ /// Delete a device
+ ///
+ /// Id of user
+ [HttpDelete("user/{userId}")]
+ public ObjectResult DeleteAllForUser(string userId)
+ {
+ try
+ {
+ // Check if exist
+ _DeviceDatabaseService.RemoveForUser(userId);
+
+ return new OkObjectResult(201);
+ }
+ catch (Exception ex)
+ {
+ return new ObjectResult(ex.Message) { StatusCode = 500 };
+ }
+ }
}
}
diff --git a/MyCore/Controllers/Devices/ProviderController.cs b/MyCore/Controllers/Devices/ProviderController.cs
index 240d927..a8ea451 100644
--- a/MyCore/Controllers/Devices/ProviderController.cs
+++ b/MyCore/Controllers/Devices/ProviderController.cs
@@ -91,11 +91,14 @@ namespace MyCore.Controllers.Devices
throw new KeyNotFoundException("User not found");
if (providerDTO == null)
- throw new KeyNotFoundException("Provider is null");
+ throw new KeyNotFoundException("Provider is null");
- ProviderDTO providerCreated = ProviderService.CreateOrUpdate(this._ProviderDatabaseService, userId, providerDTO, true);
+ if (_ProviderDatabaseService.AlreadyExistForUser(userId, providerDTO.Name))
+ throw new ArgumentException("Provider already exists");
- return new OkObjectResult(providerCreated);
+ ProviderDTO providerCreated = ProviderService.CreateOrUpdate(this._ProviderDatabaseService, userId, providerDTO, true);
+
+ return new OkObjectResult(providerCreated);
}
catch (InvalidOperationException ex)
@@ -106,6 +109,10 @@ namespace MyCore.Controllers.Devices
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };
}
+ catch (ArgumentException ex)
+ {
+ return new BadRequestObjectResult(ex.Message) { StatusCode = 409 };
+ }
catch (Exception ex)
{
return new ObjectResult(ex.Message) { StatusCode = 500 };
diff --git a/MyCore/DTO/Common/DeviceType.cs b/MyCore/DTO/Common/DeviceType.cs
new file mode 100644
index 0000000..6d260a8
--- /dev/null
+++ b/MyCore/DTO/Common/DeviceType.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace MyCore.DTO.Common
+{
+ public enum DeviceType // TO BE Continued
+ {
+ Sensor = 1,
+ Actuator,
+ Camera,
+ Light,
+ Sound,
+ Plug,
+ Thermostat,
+ Valve,
+ Gateway
+ }
+}
diff --git a/MyCore/DTO/MyControlPanel/DeviceDTO.cs b/MyCore/DTO/MyControlPanel/DeviceDTO.cs
index 978cd3d..b3f2b60 100644
--- a/MyCore/DTO/MyControlPanel/DeviceDTO.cs
+++ b/MyCore/DTO/MyControlPanel/DeviceDTO.cs
@@ -11,16 +11,24 @@ namespace MyCore.DTO.MyControlPanel
{
public string Id { get; set; }
+ public string UserId { get; set; }
+
public string Name { get; set; }
public string Model { get; set; }
+ public DeviceType Type { get; set; }
+
public bool Status { get; set; }
public ConnectionStatus ConnectionStatus { get; set; }
public string LocationId { get; set; }
+ public string ProviderId { get; set; }
+
+ public string ProviderName { get; set; }
+
public LocationDTO Location { get; set; }
public DateTime LastStateDate { get; set; }
@@ -34,10 +42,14 @@ namespace MyCore.DTO.MyControlPanel
{
public string Id { get; set; }
+ public string UserId { get; set; }
+
public string Name { get; set; }
public string Model { get; set; }
+ public DeviceType Type { get; set; }
+
public string FirmwareVersion { get; set; }
public int Port { get; set; }
@@ -70,7 +82,9 @@ namespace MyCore.DTO.MyControlPanel
public string ProviderId { get; set; }
- public List Groups { get; set; }
+ public string ProviderName { get; set; }
+
+ public List GroupIds { get; set; }
public Dictionary Properties { get; set; }
diff --git a/MyCore/Models/MyControlPanel/Database/Device.cs b/MyCore/Models/MyControlPanel/Database/Device.cs
index e8a3882..bd7fcff 100644
--- a/MyCore/Models/MyControlPanel/Database/Device.cs
+++ b/MyCore/Models/MyControlPanel/Database/Device.cs
@@ -19,6 +19,10 @@ namespace MyCore.Models.MyControlPanel.Database
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
+ [BsonElement("UserId")]
+ [BsonRequired]
+ public string UserId { get; set; }
+
[BsonElement("Name")]
[BsonRequired]
public string Name { get; set; }
@@ -38,6 +42,9 @@ namespace MyCore.Models.MyControlPanel.Database
[BsonElement("Status")]
public bool Status { get; set; }
+ [BsonElement("Type")]
+ public DeviceType Type { get; set; }
+
[BsonElement("ConnectionStatus")]
public ConnectionStatus ConnectionStatus { get; set; }
@@ -89,10 +96,13 @@ namespace MyCore.Models.MyControlPanel.Database
return new DeviceSummaryDTO()
{
Id = Id,
+ UserId = UserId,
Name = Name,
Model = Model,
+ Type = Type,
Status = Status,
ConnectionStatus = ConnectionStatus,
+ ProviderId = ProviderId,
LocationId = LocationId, // Check if correct way
// Location =
LastStateDate = LastStateDate,
@@ -106,8 +116,10 @@ namespace MyCore.Models.MyControlPanel.Database
return new DeviceDetailDTO()
{
Id = Id,
+ UserId = UserId,
Name = Name,
Model = Model,
+ Type = Type,
Status = Status,
Port = Port,
FirmwareVersion = FirmwareVersion,
@@ -122,7 +134,7 @@ namespace MyCore.Models.MyControlPanel.Database
IpAddress = IpAddress,
ServiceIdentification = ServiceIdentification,
ProviderId = ProviderId,
- Groups = GroupIds,
+ GroupIds = GroupIds,
Properties = Properties,
SupportedOperations = SupportedOperations,
Battery = Battery,
diff --git a/MyCore/Models/MyControlPanel/Database/Provider.cs b/MyCore/Models/MyControlPanel/Database/Provider.cs
index 67f9fc6..08dca9c 100644
--- a/MyCore/Models/MyControlPanel/Database/Provider.cs
+++ b/MyCore/Models/MyControlPanel/Database/Provider.cs
@@ -45,6 +45,10 @@ namespace MyCore.Models.MyControlPanel.Database
{
Id = Id,
Name = Name,
+ UserId = UserId,
+ /*Username = Username,
+ Password = Password,
+ ApiKey = ApiKey,*/
Active = Active
};
}
diff --git a/MyCore/Services/Devices/DeviceService.cs b/MyCore/Services/Devices/DeviceService.cs
index d93005f..33f9004 100644
--- a/MyCore/Services/Devices/DeviceService.cs
+++ b/MyCore/Services/Devices/DeviceService.cs
@@ -16,7 +16,7 @@ namespace MyCore.Services.Devices
public class DeviceService
{
- public static DeviceDetailDTO CreateOrUpdate(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, DeviceDetailDTO deviceDetailDTO, bool create)
+ public static DeviceDetailDTO CreateOrUpdate(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, string userId, DeviceDetailDTO deviceDetailDTO, bool create)
{
Device device;
if (create)
@@ -26,12 +26,14 @@ namespace MyCore.Services.Devices
device = _DeviceDatabaseService.GetById(deviceDetailDTO.Id);
}
- if (_DeviceDatabaseService.IsAlreadyHere(deviceDetailDTO.IpAddress, deviceDetailDTO.Port) && create)
+ if (_DeviceDatabaseService.IsAlreadyHere(userId, deviceDetailDTO.ServiceIdentification, deviceDetailDTO.Model) && create)
{
return null;
}
- device.Name = deviceDetailDTO.Name;
+ device.UserId = userId;
+ device.Name = deviceDetailDTO.Name;
+
if (_ProviderDatabaseService.IsExist(deviceDetailDTO.ProviderId))
device.ProviderId = deviceDetailDTO.ProviderId;
else
@@ -44,14 +46,15 @@ namespace MyCore.Services.Devices
device.Port = deviceDetailDTO.Port;
device.Model = deviceDetailDTO.Model;
+ device.Type = deviceDetailDTO.Type;
device.FirmwareVersion = deviceDetailDTO.FirmwareVersion;
device.Status = deviceDetailDTO.Status;
if (create)
device.ConnectionStatus = ConnectionStatus.Unknown;
else
device.ConnectionStatus = deviceDetailDTO.ConnectionStatus;
- device.Status = device.Status;
- device.LocationId = device.LocationId;
+ device.Status = deviceDetailDTO.Status;
+ device.LocationId = deviceDetailDTO.LocationId;
device.CreatedDate = DateTime.Now;
device.UpdatedDate = DateTime.Now;
@@ -60,11 +63,11 @@ namespace MyCore.Services.Devices
device.ServiceIdentification = deviceDetailDTO.ServiceIdentification;
device.Battery = deviceDetailDTO.Battery;
device.BatteryStatus = deviceDetailDTO.BatteryStatus;
- device.GroupIds = device.GroupIds;
+ device.GroupIds = deviceDetailDTO.GroupIds;
// Todo structure Properties
- device.Properties = device.Properties;
+ device.Properties = deviceDetailDTO.Properties;
// Todo structure SupportedOperations
- device.SupportedOperations = device.SupportedOperations;
+ device.SupportedOperations = deviceDetailDTO.SupportedOperations;
if (create)
return _DeviceDatabaseService.Create(device).ToDTO();
@@ -72,7 +75,7 @@ namespace MyCore.Services.Devices
return _DeviceDatabaseService.Update(device.Id, device).ToDTO();
}
- public async static Task> CreateFromProvider(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, Provider provider)
+ public async static Task> CreateFromProvider(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, string userId, Provider provider)
{
if (!ProviderService.IsProviderSupported(provider.Name))
throw new KeyNotFoundException("Provider is not yet supported");
@@ -84,15 +87,15 @@ namespace MyCore.Services.Devices
{
case "Arlo":
List arloDevices = new ArloService(provider.Username, provider.Password).GetAllDevices();
- createdDevice = CreateArloDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, arloDevices, provider);
+ createdDevice = CreateArloDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, arloDevices, provider);
break;
case "Meross":
List merossDevices = new MerossService(provider.Username, provider.Password).GetMerossDevices();
- createdDevice = CreateMerossDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, merossDevices, provider);
+ createdDevice = CreateMerossDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, merossDevices, provider);
break;
case "Yeelight":
List yeelightDevices = await new YeelightService().GetDevices();
- createdDevice = CreateYeelightDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, yeelightDevices, provider);
+ createdDevice = CreateYeelightDevices(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, yeelightDevices, provider);
break;
}
}
@@ -108,7 +111,7 @@ namespace MyCore.Services.Devices
return createdDevice;
}
- public static List CreateArloDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, List arloDevices, Provider provider)
+ public static List CreateArloDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, string userId, List arloDevices, Provider provider)
{
List createdArloDevices = new List();
@@ -116,41 +119,49 @@ namespace MyCore.Services.Devices
{
DeviceDetailDTO deviceDetailDTO = new DeviceDetailDTO();
deviceDetailDTO.Name = arlo.deviceName;
- deviceDetailDTO.IpAddress = arlo.deviceId; // TO CHECK
deviceDetailDTO.ServiceIdentification = arlo.deviceId;
deviceDetailDTO.ProviderId = provider.Id;
- deviceDetailDTO.ConnectionStatus = arlo.connectivity.connected ? ConnectionStatus.Connected : ConnectionStatus.Unknown;
- deviceDetailDTO.Status = arlo.connectivity.connected ? true : false; // TODO STATE
- deviceDetailDTO.Model = arlo.deviceType;
- //deviceDetailDTO.Port = arlo.; // TO CHECK
- deviceDetailDTO.FirmwareVersion = arlo.interfaceVersion; // TODO
- /*Dictionary properties = new Dictionary();
- foreach (var property in arlo.properties)
+ if (arlo.connectivity != null)
{
- properties.Add(property.Key, property.Value);
- }*/ // TODO
- // deviceDetailDTO.Properties = properties;
-
- // TODO !
- List supportedOperationsDTO = new List();
- supportedOperationsDTO.Add(arlo.lastImageUploaded.GetType().Name + " : " + arlo.lastImageUploaded);
- supportedOperationsDTO.Add(arlo.presignedLastImageUrl.GetType().Name + " : " + arlo.presignedLastImageUrl);
- supportedOperationsDTO.Add(arlo.presignedFullFrameSnapshotUrl.GetType().Name + " : " + arlo.presignedFullFrameSnapshotUrl);
- supportedOperationsDTO.Add(arlo.presignedSnapshotUrl.GetType().Name + " : " + arlo.presignedSnapshotUrl);
- deviceDetailDTO.SupportedOperations = supportedOperationsDTO;
-
+ deviceDetailDTO.ConnectionStatus = arlo.connectivity.connected ? ConnectionStatus.Connected : ConnectionStatus.Unknown;
+ deviceDetailDTO.Status = arlo.connectivity.connected ? true : false; // TODO STATE
+ }
+ else
+ deviceDetailDTO.ConnectionStatus = ConnectionStatus.Unknown;
+
+ deviceDetailDTO.Model = arlo.modelId;
+ deviceDetailDTO.FirmwareVersion = arlo.interfaceVersion; // TODO
+ switch (arlo.deviceType)
+ {
+ case "camera":
+ deviceDetailDTO.Type = DeviceType.Camera;
+ Dictionary properties = new Dictionary();
+ properties.Add("lastImageUploaded", arlo.lastImageUploaded);
+ properties.Add("presignedLastImageUrl", arlo.presignedLastImageUrl);
+ properties.Add("presignedFullFrameSnapshotUrl", arlo.presignedFullFrameSnapshotUrl);
+ properties.Add("presignedSnapshotUrl", arlo.presignedSnapshotUrl);
+ deviceDetailDTO.Properties = properties;
+ break;
+ case "siren":
+ deviceDetailDTO.Type = DeviceType.Sound;
+ break;
+ case "basestation":
+ deviceDetailDTO.Type = DeviceType.Gateway;
+ break;
+ }
+
deviceDetailDTO.MeansOfCommunications = new List();
- deviceDetailDTO.MeansOfCommunications.Add(MeansOfCommunication.Wifi); // TO CHECK
+ deviceDetailDTO.MeansOfCommunications.Add(MeansOfCommunication.Wifi); // To check
deviceDetailDTO.CreatedDate = DateTime.Now;
deviceDetailDTO.UpdatedDate = DateTime.Now;
- createdArloDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, deviceDetailDTO, true));
+ createdArloDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, deviceDetailDTO, true));
}
return createdArloDevices;
}
- public static List CreateMerossDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, List merossDevices, Provider provider)
+ public static List CreateMerossDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, string userId, List merossDevices, Provider provider)
{
List createdMerossDevices = new List();
@@ -158,12 +169,26 @@ namespace MyCore.Services.Devices
{
DeviceDetailDTO deviceDetailDTO = new DeviceDetailDTO();
deviceDetailDTO.Name = meross.devName;
- deviceDetailDTO.IpAddress = meross.uuid; // TO CHECK
deviceDetailDTO.ServiceIdentification = meross.uuid;
deviceDetailDTO.ProviderId = provider.Id;
deviceDetailDTO.ConnectionStatus = meross.onlineStatus == 1 ? ConnectionStatus.Connected : ConnectionStatus.Disconnected;
// deviceDetailDTO.Status = meross. ? true : false; // TODO STATE
deviceDetailDTO.Model = meross.deviceType;
+ switch (deviceDetailDTO.Model) // TODO
+ {
+ case "mss425f":
+ deviceDetailDTO.Type = DeviceType.Plug;
+ break;
+ case "mss310":
+ deviceDetailDTO.Type = DeviceType.Actuator;
+ break;
+ case "msh300":
+ deviceDetailDTO.Type = DeviceType.Gateway;
+ break;
+ default:
+ deviceDetailDTO.Type = DeviceType.Actuator;
+ break;
+ }
//deviceDetailDTO.Port = arlo.; // TO CHECK
deviceDetailDTO.FirmwareVersion = meross.firmwareVersion; // TODO
/*Dictionary properties = new Dictionary();
@@ -177,7 +202,8 @@ namespace MyCore.Services.Devices
Dictionary properties = new Dictionary();
foreach (var property in meross.channels)
{
- properties.Add(property.devName, property.type);
+ if (property.type != null)
+ properties.Add(property.devName, property.type);
}
// deviceDetailDTO.SupportedOperations = supportedOperationsDTO; TODO
@@ -185,13 +211,13 @@ namespace MyCore.Services.Devices
deviceDetailDTO.MeansOfCommunications.Add(MeansOfCommunication.Wifi); // TO CHECK
deviceDetailDTO.CreatedDate = DateTime.Now;
deviceDetailDTO.UpdatedDate = DateTime.Now;
- createdMerossDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, deviceDetailDTO, true));
+ createdMerossDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, deviceDetailDTO, true));
}
return createdMerossDevices;
}
- public static List CreateYeelightDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, List yeelightDevices, Provider provider)
+ public static List CreateYeelightDevices(DeviceDatabaseService _DeviceDatabaseService, ProviderDatabaseService _ProviderDatabaseService, LocationDatabaseService _LocationDatabaseService, string userId, List yeelightDevices, Provider provider)
{
List createdYeelightDevices = new List();
@@ -200,10 +226,12 @@ namespace MyCore.Services.Devices
DeviceDetailDTO deviceDetailDTO = new DeviceDetailDTO();
deviceDetailDTO.Name = light.Name;
deviceDetailDTO.IpAddress = light.Hostname;
+ deviceDetailDTO.ServiceIdentification = light.Id;
deviceDetailDTO.ProviderId = provider.Id;
deviceDetailDTO.ConnectionStatus = ConnectionStatus.Connected;
deviceDetailDTO.Status = false;
deviceDetailDTO.Model = light.Model.ToString();
+ deviceDetailDTO.Type = DeviceType.Light; // TO CHECK
deviceDetailDTO.Port = light.Port;
deviceDetailDTO.FirmwareVersion = light.FirmwareVersion;
Dictionary properties = new Dictionary();
@@ -222,7 +250,7 @@ namespace MyCore.Services.Devices
deviceDetailDTO.MeansOfCommunications.Add(MeansOfCommunication.Wifi);
deviceDetailDTO.CreatedDate = DateTime.Now;
deviceDetailDTO.UpdatedDate = DateTime.Now;
- createdYeelightDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, deviceDetailDTO, true));
+ createdYeelightDevices.Add(CreateOrUpdate(_DeviceDatabaseService, _ProviderDatabaseService, _LocationDatabaseService, userId, deviceDetailDTO, true));
}
return createdYeelightDevices;
diff --git a/MyCore/Services/Devices/SupportedDevices/MerossService.cs b/MyCore/Services/Devices/SupportedDevices/MerossService.cs
index 8ff497b..7ee7335 100644
--- a/MyCore/Services/Devices/SupportedDevices/MerossService.cs
+++ b/MyCore/Services/Devices/SupportedDevices/MerossService.cs
@@ -28,7 +28,7 @@ namespace MyCore.Services
private string _logUrl = $"{_merossUrl}/v1/log/user";
private string _devList = $"{_merossUrl}/v1/Device/devList";
- private string username = "thomas.fransolet@hotmail.be";
+ private static string username = "thomas.fransolet@hotmail.be";
private static string password = "Coconuts07";
private static ResultToken resultToken;
diff --git a/MyCore/Services/MyControlPanel/Database/DeviceDatabaseService.cs b/MyCore/Services/MyControlPanel/Database/DeviceDatabaseService.cs
index 3228184..6320f9c 100644
--- a/MyCore/Services/MyControlPanel/Database/DeviceDatabaseService.cs
+++ b/MyCore/Services/MyControlPanel/Database/DeviceDatabaseService.cs
@@ -20,9 +20,9 @@ namespace MyCore.Services.MyControlPanel
var database = client.GetDatabase("MyCoreDb");
_Devices = database.GetCollection("Devices");
}
- public List GetAll()
+ public List GetAll(string userId)
{
- return _Devices.Find(d => true).ToList();
+ return _Devices.Find(d => d.UserId == userId).ToList();
}
public Device GetById(string id)
@@ -35,9 +35,9 @@ namespace MyCore.Services.MyControlPanel
return _Devices.Find(d => d.Id == id).FirstOrDefault() != null ? true : false;
}
- public bool IsAlreadyHere(string ipAddress, int port)
+ public bool IsAlreadyHere(string userId, string serviceIdentification, string model)
{
- return _Devices.Find(d => d.IpAddress == ipAddress && d.Port == port).FirstOrDefault() != null ? true : false;
+ return _Devices.Find(d => d.UserId == userId && d.ServiceIdentification == serviceIdentification && d.Model == model).FirstOrDefault() != null ? true : false;
}
public Device Create(Device device)
@@ -56,5 +56,10 @@ namespace MyCore.Services.MyControlPanel
{
_Devices.DeleteOne(device => device.Id == id);
}
+
+ public void RemoveForUser(string userId)
+ {
+ _Devices.DeleteMany(device => device.UserId == userId);
+ }
}
}
diff --git a/MyCore/Services/MyControlPanel/Database/ProviderDatabaseService.cs b/MyCore/Services/MyControlPanel/Database/ProviderDatabaseService.cs
index 4b4a843..85ff5ea 100644
--- a/MyCore/Services/MyControlPanel/Database/ProviderDatabaseService.cs
+++ b/MyCore/Services/MyControlPanel/Database/ProviderDatabaseService.cs
@@ -29,6 +29,11 @@ namespace MyCore.Services.MyControlPanel
return _Providers.Find(p => p.Id == id && p.UserId == userId).FirstOrDefault();
}
+ public bool AlreadyExistForUser(string userId, string name)
+ {
+ return _Providers.Find(p => p.UserId == userId && p.Name == name).FirstOrDefault() != null ? true : false; ;
+ }
+
public Provider GetByName(string name)
{
return _Providers.Find(p => p.Name == name).FirstOrDefault();