MC update Device and Provider Controllers

This commit is contained in:
Thomas Fransolet 2020-03-30 12:11:13 +02:00
parent 61d80fc4bd
commit 96b552f884
5 changed files with 56 additions and 16 deletions

View File

@ -21,15 +21,17 @@ namespace MyCore.Controllers.Devices
[ApiController] [ApiController]
public class DeviceController : ControllerBase public class DeviceController : ControllerBase
{ {
private readonly DeviceDatabaseService _DeviceDatabaseService; private DeviceDatabaseService _DeviceDatabaseService;
private readonly ProviderDatabaseService _ProviderDatabaseService; private ProviderDatabaseService _ProviderDatabaseService;
private readonly LocationDatabaseService _LocationDatabaseService; private LocationDatabaseService _LocationDatabaseService;
private UserDatabaseService _UserDatabaseService;
public DeviceController(DeviceDatabaseService DeviceDatabaseService, ProviderDatabaseService ProviderDatabaseService, LocationDatabaseService LocationDatabaseService) public DeviceController(DeviceDatabaseService DeviceDatabaseService, ProviderDatabaseService ProviderDatabaseService, LocationDatabaseService LocationDatabaseService, UserDatabaseService UserDatabaseService)
{ {
this._DeviceDatabaseService = DeviceDatabaseService; this._DeviceDatabaseService = DeviceDatabaseService;
this._ProviderDatabaseService = ProviderDatabaseService; this._ProviderDatabaseService = ProviderDatabaseService;
this._LocationDatabaseService = LocationDatabaseService; this._LocationDatabaseService = LocationDatabaseService;
this._UserDatabaseService = UserDatabaseService;
} }
// GET: Devices // GET: Devices
@ -114,7 +116,10 @@ namespace MyCore.Controllers.Devices
{ {
try try
{ {
if (userId == null && UserService.IsExist(userId)) if (userId == null)
throw new InvalidOperationException("User not found");
if (!UserService.IsExist(_UserDatabaseService, userId))
throw new KeyNotFoundException("User not found"); throw new KeyNotFoundException("User not found");
Provider provider = ProviderService.GetProviderById(this._ProviderDatabaseService, userId, providerId); Provider provider = ProviderService.GetProviderById(this._ProviderDatabaseService, userId, providerId);
@ -126,6 +131,10 @@ namespace MyCore.Controllers.Devices
return new OkObjectResult(devicesCreated); return new OkObjectResult(devicesCreated);
} }
catch (InvalidOperationException ex)
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 400 };
}
catch (KeyNotFoundException ex) catch (KeyNotFoundException ex)
{ {
return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };

View File

@ -22,15 +22,17 @@ namespace MyCore.Controllers.Devices
[ApiController] [ApiController]
public class ProviderController : ControllerBase public class ProviderController : ControllerBase
{ {
private readonly DeviceDatabaseService _DeviceDatabaseService; private DeviceDatabaseService _DeviceDatabaseService;
private readonly ProviderDatabaseService _ProviderDatabaseService; private ProviderDatabaseService _ProviderDatabaseService;
private readonly LocationDatabaseService _LocationDatabaseService; private LocationDatabaseService _LocationDatabaseService;
private UserDatabaseService _UserDatabaseService;
public ProviderController(DeviceDatabaseService DeviceDatabaseService, ProviderDatabaseService ProviderDatabaseService, LocationDatabaseService LocationDatabaseService) public ProviderController(DeviceDatabaseService DeviceDatabaseService, ProviderDatabaseService ProviderDatabaseService, LocationDatabaseService LocationDatabaseService, UserDatabaseService UserDatabaseService)
{ {
this._DeviceDatabaseService = DeviceDatabaseService; this._DeviceDatabaseService = DeviceDatabaseService;
this._ProviderDatabaseService = ProviderDatabaseService; this._ProviderDatabaseService = ProviderDatabaseService;
this._LocationDatabaseService = LocationDatabaseService; this._LocationDatabaseService = LocationDatabaseService;
this._UserDatabaseService = UserDatabaseService;
} }
// GET: Devices // GET: Devices
@ -43,12 +45,26 @@ namespace MyCore.Controllers.Devices
{ {
try try
{ {
if (userId == null)
throw new InvalidOperationException("User not found");
if (!UserService.IsExist(_UserDatabaseService, userId))
throw new KeyNotFoundException("User not found");
List<Provider> providers = ProviderService.GetAll(this._ProviderDatabaseService, userId); List<Provider> providers = ProviderService.GetAll(this._ProviderDatabaseService, userId);
List<ProviderDTO> providersDTO = providers.Select(p => p.ToDTO()).ToList(); List<ProviderDTO> providersDTO = providers.Select(p => p.ToDTO()).ToList();
return new OkObjectResult(providersDTO); return new OkObjectResult(providersDTO);
} }
catch (InvalidOperationException ex)
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 400 };
}
catch (KeyNotFoundException ex)
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };
}
catch (Exception ex) catch (Exception ex)
{ {
return new ObjectResult(ex.Message) { StatusCode = 500 }; return new ObjectResult(ex.Message) { StatusCode = 500 };
@ -67,7 +83,10 @@ namespace MyCore.Controllers.Devices
try try
{ {
if (userId == null && UserService.IsExist(userId)) if (userId == null)
throw new InvalidOperationException("User not found");
if (!UserService.IsExist(_UserDatabaseService, userId))
throw new KeyNotFoundException("User not found"); throw new KeyNotFoundException("User not found");
if (providerDTO == null) if (providerDTO == null)
@ -78,6 +97,10 @@ namespace MyCore.Controllers.Devices
return new OkObjectResult(providerCreated); return new OkObjectResult(providerCreated);
} }
catch (InvalidOperationException ex)
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 400 };
}
catch (KeyNotFoundException ex) catch (KeyNotFoundException ex)
{ {
return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };
@ -99,7 +122,10 @@ namespace MyCore.Controllers.Devices
{ {
try try
{ {
if (userId == null && UserService.IsExist(userId)) if (userId == null)
throw new InvalidOperationException("User not found");
if (!UserService.IsExist(_UserDatabaseService, userId))
throw new KeyNotFoundException("User not found"); throw new KeyNotFoundException("User not found");
if (!ProviderService.IsExist(this._ProviderDatabaseService, userId, providerDTO.Id)) if (!ProviderService.IsExist(this._ProviderDatabaseService, userId, providerDTO.Id))
@ -109,6 +135,10 @@ namespace MyCore.Controllers.Devices
return new OkObjectResult(providerUpdated); return new OkObjectResult(providerUpdated);
} }
catch (InvalidOperationException ex)
{
return new BadRequestObjectResult(ex.Message) { StatusCode = 400 };
}
catch (KeyNotFoundException ex) catch (KeyNotFoundException ex)
{ {
return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; return new BadRequestObjectResult(ex.Message) { StatusCode = 404 };

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp2.1</TargetFramework>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<UserSecretsId>6d53b0c4-74d6-41aa-8816-2ec3cf42767a</UserSecretsId> <UserSecretsId>6d53b0c4-74d6-41aa-8816-2ec3cf42767a</UserSecretsId>
</PropertyGroup> </PropertyGroup>

View File

@ -7,13 +7,10 @@ namespace MyCore.Services.MyControlPanel
{ {
public class UserService public class UserService
{ {
private static UserDatabaseService _UserDatabaseService; public static bool IsExist(UserDatabaseService _UserDatabaseService, string userId)
public static bool IsExist(string userId)
{ {
return _UserDatabaseService.GetById(userId) != null ? true : false ; return _UserDatabaseService.GetById(userId) != null ? true : false ;
} }
} }
} }

View File

@ -17,6 +17,7 @@ using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using MyCore.Models; using MyCore.Models;
using MyCore.Services; using MyCore.Services;
using MyCore.Services.MyControlPanel;
using Swashbuckle.AspNetCore.Swagger; using Swashbuckle.AspNetCore.Swagger;
namespace MyCore namespace MyCore
{ {
@ -46,6 +47,9 @@ namespace MyCore
services.AddScoped<BookService>(); services.AddScoped<BookService>();
services.AddScoped<IoTDeviceService>(); services.AddScoped<IoTDeviceService>();
services.AddScoped<UserDatabaseService>(); services.AddScoped<UserDatabaseService>();
services.AddScoped<ProviderDatabaseService>();
services.AddScoped<DeviceDatabaseService>();
services.AddScoped<LocationDatabaseService>();
services.AddScoped<TokenService>(); services.AddScoped<TokenService>();
services.AddScoped<ScreenDeviceDatabaseService>(); services.AddScoped<ScreenDeviceDatabaseService>();