diff --git a/MyCore/Controllers/Devices/DeviceController.cs b/MyCore/Controllers/Devices/DeviceController.cs
index d7d8a9a..91d9f3a 100644
--- a/MyCore/Controllers/Devices/DeviceController.cs
+++ b/MyCore/Controllers/Devices/DeviceController.cs
@@ -103,6 +103,38 @@ namespace MyCore.Controllers.Devices
}
}
+ ///
+ /// Create devices from provider
+ ///
+ /// User Id
+ /// Id of Provider
+ [ProducesResponseType(typeof(List), 200)]
+ [HttpPost("fromProvider/{userId}")]
+ public ObjectResult CreateDevicesFromProvider(string userId, [FromBody] string providerId)
+ {
+ try
+ {
+ if (providerId == null)
+ throw new KeyNotFoundException("Provider id is null");
+
+ if (userId == null && UserService.IsExist(userId))
+ throw new KeyNotFoundException("User not found");
+
+ List devicesCreated = DeviceService.CreateFromProvider(providerId);
+
+ return new OkObjectResult(devicesCreated);
+
+ }
+ catch (KeyNotFoundException ex)
+ {
+ return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };
+ }
+ catch (Exception ex)
+ {
+ return new ObjectResult(ex.Message) { StatusCode = 500 };
+ }
+ }
+
///
/// Update a device
///
diff --git a/MyCore/Services/Devices/DeviceService.cs b/MyCore/Services/Devices/DeviceService.cs
index ccc8b9e..a898e56 100644
--- a/MyCore/Services/Devices/DeviceService.cs
+++ b/MyCore/Services/Devices/DeviceService.cs
@@ -54,5 +54,34 @@ namespace MyCore.Services.Devices
else
return _DeviceDatabaseService.Update(device.Id, device).ToDTO();
}
+
+ public static List CreateFromProvider(string providerId)
+ {
+ // TODO !
+ Device device = new Device();
+
+ Provider provider = new Provider();
+ if (_ProviderDatabaseService.IsExist(providerId))
+ provider = _ProviderDatabaseService.GetById(providerId);
+ else
+ throw new KeyNotFoundException("Provider does not exist");
+
+ switch (provider.Name)
+ {
+ case "Arlo":
+ break;
+ case "Meross":
+ break;
+ case "Yeelight":
+ break;
+ default:
+ throw new KeyNotFoundException("Provider is not yet supported");
+ }
+
+ List createdDevice = new List();
+
+
+ return createdDevice;
+ }
}
}
diff --git a/MyCore/Services/MyControlPanel/UserService.cs b/MyCore/Services/MyControlPanel/UserService.cs
new file mode 100644
index 0000000..a940ebd
--- /dev/null
+++ b/MyCore/Services/MyControlPanel/UserService.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace MyCore.Services.MyControlPanel
+{
+ public class UserService
+ {
+ private static UserDatabaseService _UserDatabaseService;
+
+ public static bool IsExist(string userId)
+ {
+ return _UserDatabaseService.GetById(userId) != null ? true : false ;
+ }
+
+ }
+}
+