using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UserManagement.Data.Dto;
using UserManagement.MediatR.Commands;
using UserManagement.MediatR.Queries;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using UserManagement.Api.Helpers;
namespace UserManagement.API.Controllers
{
///
/// RoleUsers
///
[Route("api/[controller]")]
[ApiController]
[Authorize]
public class RoleUsersController : BaseController
{
public IMediator _mediator { get; set; }
///
/// RoleUsers
///
///
public RoleUsersController(IMediator mediator)
{
_mediator = mediator;
}
///
/// Get Role Users By Id
///
///
///
[HttpGet("{id}", Name = "RoleUsers")]
[Produces("application/json", "application/xml", Type = typeof(List))]
[ClaimCheck("user_role_edit")]
public async Task RoleUsers(Guid id)
{
var getUserQuery = new GetRoleUsersQuery { RoleId = id };
var result = await _mediator.Send(getUserQuery);
return Ok(result);
}
///
/// Update Role Users By Id
///
///
///
///
[HttpPut("{id}")]
[Produces("application/json", "application/xml", Type = typeof(UserRoleDto))]
[ClaimCheck("user_role_edit")]
public async Task UpdateRoleUsers(Guid id, UpdateUserRoleCommand updateRoleCommand)
{
updateRoleCommand.Id = id;
var result = await _mediator.Send(updateRoleCommand);
return ReturnFormattedResponse(result);
}
}
}