using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Threading.Tasks; using System; using UserManagement.Data.Dto; using UserManagement.MediatR.Commands; namespace UserManagement.API.Controllers { [Route("api/[controller]")] [ApiController] [Authorize] public class PageHelperController : BaseController { public IMediator _mediator { get; set; } public PageHelperController(IMediator mediator) { _mediator = mediator; } /// /// Get Specific page helper by ID. /// /// /// [HttpGet("{id}")] [Produces("application/json", "application/xml", Type = typeof(PageHelperDto))] public async Task GetPageHelper(Guid id) { var getPageHelperCommand = new GetPageHelperCommand { Id = id }; var result = await _mediator.Send(getPageHelperCommand); return GenerateResponse(result); } /// /// get page helper by code. /// /// /// [HttpGet("code/{code}")] [Produces("application/json", "application/xml", Type = typeof(PageHelperDto))] public async Task GetPageHelperByCode(string code) { var getPageHelperCommand = new GetPageHelperByCodeCommand { Code = code }; var result = await _mediator.Send(getPageHelperCommand); return GenerateResponse(result); } /// /// Get All page helpers. /// /// [HttpGet] [Produces("application/json", "application/xml", Type = typeof(List))] public async Task GetPageHelpers() { var getAllPageHelpers = new GetAllPageHelpersCommand(); var result = await _mediator.Send(getAllPageHelpers); return Ok(result); } /// /// Create a page Helper. /// [HttpPost] [Produces("application/json", "application/xml", Type = typeof(PageHelperDto))] public async Task AddPageHelper([FromBody] CreatePageHelperCommand createPageHelperCommand) { var result = await _mediator.Send(createPageHelperCommand); return GenerateResponse(result); } /// /// Update Update Helper. /// /// /// /// [HttpPut("{Id}")] [Produces("application/json", "application/xml", Type = typeof(PageHelperDto))] public async Task UpdatePageHelper(Guid Id, [FromBody] UpdatePageHelperCommand updatePageHelperCommand) { updatePageHelperCommand.Id = Id; var result = await _mediator.Send(updatePageHelperCommand); return GenerateResponse(result); } /// /// Delete Page Helper. /// /// /// [HttpDelete("{Id}")] public async Task DeletePageHelper(Guid Id) { var deletePageHelperCommand = new DeletePageHelperCommand { Id = Id }; var result = await _mediator.Send(deletePageHelperCommand); return GenerateResponse(result); } } }