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 { public UserRepController(ILogger logger, IUserRepService service) : base(logger, service) { } [NonAction] public override Task GetAll() { return base.GetAll(); } [HttpGet] public async Task 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 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); } } } }