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);
}
}
}