2024-03-07 11:15:47 +01:00

52 lines
1.8 KiB
C#

using DigitalData.Core.API;
using DigitalData.UserManager.Application.Contracts;
using DigitalData.UserManager.Application.DTOs.UserRep;
using DigitalData.UserManager.Domain.Entities;
using DigitalData.UserManager.Infrastructure.Contracts;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.SqlClient;
namespace DigitalData.UserManager.API.Controllers
{
public class UserRepController : CRUDControllerBase<UserRepController, IUserRepService, IUserRepRepository, 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)
{
var result = await _service.ReadAllAsync(withUser, withRepGroup, withRightGroup, withRepUser, userId);
if (result.IsSuccess)
{
return Ok(result);
}
return NotFound(result);
}
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);
}
}
}
}