try-catch zu CRUDControllerBase hinzugefügt

This commit is contained in:
Developer 02
2024-07-01 16:01:49 +02:00
parent 2cb80ec119
commit 7789605585

View File

@@ -46,19 +46,27 @@ namespace DigitalData.Core.API
[HttpPost] [HttpPost]
public virtual async Task<IActionResult> Create(TCreateDto createDto) public virtual async Task<IActionResult> Create(TCreateDto createDto)
{ {
return await _service.CreateAsync(createDto).ThenAsync<TId, IActionResult>( try
Success: id => {
{ return await _service.CreateAsync(createDto).ThenAsync<TId, IActionResult>(
var createdResource = new { Id = id }; Success: id =>
var actionName = nameof(GetById); {
var routeValues = new { id = createdResource.Id }; var createdResource = new { Id = id };
return CreatedAtAction(actionName, routeValues, createdResource); var actionName = nameof(GetById);
}, var routeValues = new { id = createdResource.Id };
Fail: (messages, notices) => return CreatedAtAction(actionName, routeValues, createdResource);
{ },
_logger.LogNotice(notices); Fail: (messages, notices) =>
return BadRequest(messages); {
}); _logger.LogNotice(notices);
return BadRequest(messages);
});
}
catch (Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
} }
/// <summary> /// <summary>
@@ -69,13 +77,21 @@ namespace DigitalData.Core.API
[HttpGet("{id}")] [HttpGet("{id}")]
public virtual async Task<IActionResult> GetById([FromRoute] TId id) public virtual async Task<IActionResult> GetById([FromRoute] TId id)
{ {
return await _service.ReadByIdAsync(id).ThenAsync( try
Success: Ok, {
Fail: IActionResult (messages, notices) => return await _service.ReadByIdAsync(id).ThenAsync(
{ Success: Ok,
_logger.LogNotice(notices); Fail: IActionResult (messages, notices) =>
return NotFound(messages); {
}); _logger.LogNotice(notices);
return NotFound(messages);
});
}
catch (Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
} }
/// <summary> /// <summary>
@@ -85,13 +101,21 @@ namespace DigitalData.Core.API
[HttpGet] [HttpGet]
public virtual async Task<IActionResult> GetAll() public virtual async Task<IActionResult> GetAll()
{ {
return await _service.ReadAllAsync().ThenAsync( try
Success: Ok, {
Fail: IActionResult (messages, notices) => return await _service.ReadAllAsync().ThenAsync(
{ Success: Ok,
_logger.LogNotice(notices); Fail: IActionResult (messages, notices) =>
return NotFound(messages); {
}); _logger.LogNotice(notices);
return NotFound(messages);
});
}
catch (Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
} }
/// <summary> /// <summary>
@@ -102,13 +126,21 @@ namespace DigitalData.Core.API
[HttpPut] [HttpPut]
public virtual async Task<IActionResult> Update(TUpdateDto updateDto) public virtual async Task<IActionResult> Update(TUpdateDto updateDto)
{ {
return await _service.UpdateAsync(updateDto).ThenAsync( try
Success: Ok, {
Fail: IActionResult (messages, notices) => return await _service.UpdateAsync(updateDto).ThenAsync(
{ Success: Ok,
_logger.LogNotice(notices); Fail: IActionResult (messages, notices) =>
return BadRequest(messages); {
}); _logger.LogNotice(notices);
return BadRequest(messages);
});
}
catch(Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
} }
/// <summary> /// <summary>
@@ -119,13 +151,21 @@ namespace DigitalData.Core.API
[HttpDelete("{id}")] [HttpDelete("{id}")]
public virtual async Task<IActionResult> Delete([FromRoute] TId id) public virtual async Task<IActionResult> Delete([FromRoute] TId id)
{ {
return await _service.DeleteAsyncById(id).ThenAsync( try
Success: Ok, {
Fail: IActionResult (messages, notices) => return await _service.DeleteAsyncById(id).ThenAsync(
{ Success: Ok,
_logger.LogNotice(notices); Fail: IActionResult (messages, notices) =>
return BadRequest(messages); {
}); _logger.LogNotice(notices);
return BadRequest(messages);
});
}
catch (Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
} }
} }
} }