From 8960953ccc8abf6c27234feca379a2ebea91d0fe Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Fri, 27 Mar 2020 17:12:40 +0100 Subject: [PATCH] MC add Create from Provider (TODO) + UserService --- .../Controllers/Devices/DeviceController.cs | 32 +++++++++++++++++++ MyCore/Services/Devices/DeviceService.cs | 29 +++++++++++++++++ MyCore/Services/MyControlPanel/UserService.cs | 19 +++++++++++ 3 files changed, 80 insertions(+) create mode 100644 MyCore/Services/MyControlPanel/UserService.cs 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 ; + } + + } +} +