From 96b552f8849f37eb6c6622b46d9382fcd23bad11 Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Mon, 30 Mar 2020 12:11:13 +0200 Subject: [PATCH] MC update Device and Provider Controllers --- .../Controllers/Devices/DeviceController.cs | 19 ++++++--- .../Controllers/Devices/ProviderController.cs | 42 ++++++++++++++++--- MyCore/MyCore.csproj | 2 +- MyCore/Services/MyControlPanel/UserService.cs | 5 +-- MyCore/Startup.cs | 4 ++ 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/MyCore/Controllers/Devices/DeviceController.cs b/MyCore/Controllers/Devices/DeviceController.cs index 6ba322c..5b3db81 100644 --- a/MyCore/Controllers/Devices/DeviceController.cs +++ b/MyCore/Controllers/Devices/DeviceController.cs @@ -21,15 +21,17 @@ namespace MyCore.Controllers.Devices [ApiController] public class DeviceController : ControllerBase { - private readonly DeviceDatabaseService _DeviceDatabaseService; - private readonly ProviderDatabaseService _ProviderDatabaseService; - private readonly LocationDatabaseService _LocationDatabaseService; + private DeviceDatabaseService _DeviceDatabaseService; + private ProviderDatabaseService _ProviderDatabaseService; + 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._ProviderDatabaseService = ProviderDatabaseService; this._LocationDatabaseService = LocationDatabaseService; + this._UserDatabaseService = UserDatabaseService; } // GET: Devices @@ -114,7 +116,10 @@ namespace MyCore.Controllers.Devices { 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"); Provider provider = ProviderService.GetProviderById(this._ProviderDatabaseService, userId, providerId); @@ -126,6 +131,10 @@ namespace MyCore.Controllers.Devices return new OkObjectResult(devicesCreated); } + catch (InvalidOperationException ex) + { + return new BadRequestObjectResult(ex.Message) { StatusCode = 400 }; + } catch (KeyNotFoundException ex) { return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; diff --git a/MyCore/Controllers/Devices/ProviderController.cs b/MyCore/Controllers/Devices/ProviderController.cs index 21d5dba..2a5d5ac 100644 --- a/MyCore/Controllers/Devices/ProviderController.cs +++ b/MyCore/Controllers/Devices/ProviderController.cs @@ -22,15 +22,17 @@ namespace MyCore.Controllers.Devices [ApiController] public class ProviderController : ControllerBase { - private readonly DeviceDatabaseService _DeviceDatabaseService; - private readonly ProviderDatabaseService _ProviderDatabaseService; - private readonly LocationDatabaseService _LocationDatabaseService; + private DeviceDatabaseService _DeviceDatabaseService; + private ProviderDatabaseService _ProviderDatabaseService; + 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._ProviderDatabaseService = ProviderDatabaseService; this._LocationDatabaseService = LocationDatabaseService; + this._UserDatabaseService = UserDatabaseService; } // GET: Devices @@ -43,12 +45,26 @@ namespace MyCore.Controllers.Devices { try { + if (userId == null) + throw new InvalidOperationException("User not found"); + + if (!UserService.IsExist(_UserDatabaseService, userId)) + throw new KeyNotFoundException("User not found"); + List providers = ProviderService.GetAll(this._ProviderDatabaseService, userId); List providersDTO = providers.Select(p => p.ToDTO()).ToList(); 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) { return new ObjectResult(ex.Message) { StatusCode = 500 }; @@ -67,7 +83,10 @@ namespace MyCore.Controllers.Devices 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"); if (providerDTO == null) @@ -78,6 +97,10 @@ namespace MyCore.Controllers.Devices return new OkObjectResult(providerCreated); } + catch (InvalidOperationException ex) + { + return new BadRequestObjectResult(ex.Message) { StatusCode = 400 }; + } catch (KeyNotFoundException ex) { return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; @@ -99,7 +122,10 @@ namespace MyCore.Controllers.Devices { 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"); if (!ProviderService.IsExist(this._ProviderDatabaseService, userId, providerDTO.Id)) @@ -109,6 +135,10 @@ namespace MyCore.Controllers.Devices return new OkObjectResult(providerUpdated); } + catch (InvalidOperationException ex) + { + return new BadRequestObjectResult(ex.Message) { StatusCode = 400 }; + } catch (KeyNotFoundException ex) { return new BadRequestObjectResult(ex.Message) { StatusCode = 404 }; diff --git a/MyCore/MyCore.csproj b/MyCore/MyCore.csproj index 33c3b78..ecb61a8 100644 --- a/MyCore/MyCore.csproj +++ b/MyCore/MyCore.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + netcoreapp2.1 Linux 6d53b0c4-74d6-41aa-8816-2ec3cf42767a diff --git a/MyCore/Services/MyControlPanel/UserService.cs b/MyCore/Services/MyControlPanel/UserService.cs index a940ebd..2d01cec 100644 --- a/MyCore/Services/MyControlPanel/UserService.cs +++ b/MyCore/Services/MyControlPanel/UserService.cs @@ -7,13 +7,10 @@ namespace MyCore.Services.MyControlPanel { public class UserService { - private static UserDatabaseService _UserDatabaseService; - - public static bool IsExist(string userId) + public static bool IsExist(UserDatabaseService _UserDatabaseService, string userId) { return _UserDatabaseService.GetById(userId) != null ? true : false ; } - } } diff --git a/MyCore/Startup.cs b/MyCore/Startup.cs index 29d4733..78b3acd 100644 --- a/MyCore/Startup.cs +++ b/MyCore/Startup.cs @@ -17,6 +17,7 @@ using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; using MyCore.Models; using MyCore.Services; +using MyCore.Services.MyControlPanel; using Swashbuckle.AspNetCore.Swagger; namespace MyCore { @@ -46,6 +47,9 @@ namespace MyCore services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); services.AddScoped(); services.AddScoped();