using DigitalData.Core.API; using DigitalData.UserManager.Application.Contracts; using DigitalData.UserManager.Application.DTOs.Group; using DigitalData.UserManager.Application.DTOs.User; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; using Microsoft.AspNetCore.Mvc; namespace DigitalData.UserManager.API.Controllers { public class UserController : CRUDControllerBase { public UserController(ILogger logger, IUserService service) : base(logger, service) { } [HttpGet("ByModuleId/{moduleId}")] public async Task GetByModuleId([FromRoute] int moduleId, [FromQuery]bool assigned = true) { var result = assigned ? await _service.ReadByModuleIdAsync(moduleId) : await _service.ReadUnassignedByModuleIdAsync(moduleId); return Ok(result); } [HttpGet("ByGroupId/{groupId}")] public async Task GetByGroupId([FromRoute] int groupId, [FromQuery] bool assigned = true) { var result = assigned ? await _service.ReadByGroupIdAsync(groupId) : await _service.ReadUnassignedByGroupIdAsync(groupId); ; return Ok(result); } [HttpPost("ByDir")] public async Task CreateByDir(UserPrincipalDto upDto) { var result = await _service.CreateAsync(upDto); if (result.IsSuccess) { var createdResource = new { Id = result.Data }; var actionName = nameof(GetById); var routeValues = new { id = createdResource.Id }; return CreatedAtAction(actionName, routeValues, createdResource); } return BadRequest(result); } } }