From 7789605585af8c801c982474f881ed25b7e80f09 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 1 Jul 2024 16:01:49 +0200 Subject: [PATCH] =?UTF-8?q?try-catch=20zu=20CRUDControllerBase=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalData.Core.API/CRUDControllerBase.cs | 122 ++++++++++++++------- 1 file changed, 81 insertions(+), 41 deletions(-) diff --git a/DigitalData.Core.API/CRUDControllerBase.cs b/DigitalData.Core.API/CRUDControllerBase.cs index f3de4a6..1d099c5 100644 --- a/DigitalData.Core.API/CRUDControllerBase.cs +++ b/DigitalData.Core.API/CRUDControllerBase.cs @@ -46,19 +46,27 @@ namespace DigitalData.Core.API [HttpPost] public virtual async Task Create(TCreateDto createDto) { - return await _service.CreateAsync(createDto).ThenAsync( - Success: id => - { - var createdResource = new { Id = id }; - var actionName = nameof(GetById); - var routeValues = new { id = createdResource.Id }; - return CreatedAtAction(actionName, routeValues, createdResource); - }, - Fail: (messages, notices) => - { - _logger.LogNotice(notices); - return BadRequest(messages); - }); + try + { + return await _service.CreateAsync(createDto).ThenAsync( + Success: id => + { + var createdResource = new { Id = id }; + var actionName = nameof(GetById); + var routeValues = new { id = createdResource.Id }; + return CreatedAtAction(actionName, routeValues, createdResource); + }, + Fail: (messages, notices) => + { + _logger.LogNotice(notices); + return BadRequest(messages); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } } /// @@ -69,13 +77,21 @@ namespace DigitalData.Core.API [HttpGet("{id}")] public virtual async Task GetById([FromRoute] TId id) { - return await _service.ReadByIdAsync(id).ThenAsync( - Success: Ok, - Fail: IActionResult (messages, notices) => - { - _logger.LogNotice(notices); - return NotFound(messages); - }); + try + { + return await _service.ReadByIdAsync(id).ThenAsync( + Success: Ok, + Fail: IActionResult (messages, notices) => + { + _logger.LogNotice(notices); + return NotFound(messages); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } } /// @@ -85,13 +101,21 @@ namespace DigitalData.Core.API [HttpGet] public virtual async Task GetAll() { - return await _service.ReadAllAsync().ThenAsync( - Success: Ok, - Fail: IActionResult (messages, notices) => - { - _logger.LogNotice(notices); - return NotFound(messages); - }); + try + { + return await _service.ReadAllAsync().ThenAsync( + Success: Ok, + Fail: IActionResult (messages, notices) => + { + _logger.LogNotice(notices); + return NotFound(messages); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } } /// @@ -102,13 +126,21 @@ namespace DigitalData.Core.API [HttpPut] public virtual async Task Update(TUpdateDto updateDto) { - return await _service.UpdateAsync(updateDto).ThenAsync( - Success: Ok, - Fail: IActionResult (messages, notices) => - { - _logger.LogNotice(notices); - return BadRequest(messages); - }); + try + { + return await _service.UpdateAsync(updateDto).ThenAsync( + Success: Ok, + Fail: IActionResult (messages, notices) => + { + _logger.LogNotice(notices); + return BadRequest(messages); + }); + } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } } /// @@ -119,13 +151,21 @@ namespace DigitalData.Core.API [HttpDelete("{id}")] public virtual async Task Delete([FromRoute] TId id) { - return await _service.DeleteAsyncById(id).ThenAsync( - Success: Ok, - Fail: IActionResult (messages, notices) => - { - _logger.LogNotice(notices); - return BadRequest(messages); - }); + try + { + return await _service.DeleteAsyncById(id).ThenAsync( + Success: Ok, + Fail: IActionResult (messages, notices) => + { + _logger.LogNotice(notices); + return BadRequest(messages); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } } } } \ No newline at end of file