MC add Create from Provider (TODO) + UserService

This commit is contained in:
Thomas Fransolet 2020-03-27 17:12:40 +01:00
parent 8376acb662
commit 8960953ccc
3 changed files with 80 additions and 0 deletions

View File

@ -103,6 +103,38 @@ namespace MyCore.Controllers.Devices
}
}
/// <summary>
/// Create devices from provider
/// </summary>
/// <param name="userId">User Id</param>
/// <param name="providerId">Id of Provider</param>
[ProducesResponseType(typeof(List<DeviceDetailDTO>), 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<DeviceDetailDTO> 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 };
}
}
/// <summary>
/// Update a device
/// </summary>

View File

@ -54,5 +54,34 @@ namespace MyCore.Services.Devices
else
return _DeviceDatabaseService.Update(device.Id, device).ToDTO();
}
public static List<DeviceDetailDTO> 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<DeviceDetailDTO> createdDevice = new List<DeviceDetailDTO>();
return createdDevice;
}
}
}

View File

@ -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 ;
}
}
}