2024-07-01 15:55:10 +02:00

61 lines
2.0 KiB
C#

using DigitalData.Core.API;
using DigitalData.UserManager.Application.Contracts;
using DigitalData.UserManager.Application.DTOs.UserRep;
using DigitalData.UserManager.Domain.Entities;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.SqlClient;
namespace DigitalData.UserManager.API.Controllers
{
[Authorize]
public class UserRepController : CRUDControllerBase<IUserRepService, UserRepCreateDto, UserRepReadDto, UserRepUpdateDto, UserRep, int>
{
public UserRepController(ILogger<UserRepController> logger, IUserRepService service) : base(logger, service)
{
}
[NonAction]
public override Task<IActionResult> GetAll()
{
return base.GetAll();
}
[HttpGet]
public async Task<IActionResult> GetAll(bool withUser = false, bool withRepGroup = false, bool withRightGroup = false, bool withRepUser = false, int? userId = null)
{
try
{
var result = await _service.ReadAllAsync(withUser, withRepGroup, withRightGroup, withRepUser, userId);
if (result.IsSuccess)
{
return Ok(result);
}
return NotFound(result);
}
catch (Exception ex)
{
_logger.LogError(ex, "{Message}", ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
public override async Task<IActionResult> Create(UserRepCreateDto createDto)
{
try
{
return await base.Create(createDto);
}
catch (Exception ex)
{
var innerEx = ex.InnerException;
if (innerEx is SqlException)
return BadRequest(innerEx.Message);
else
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
}
}