using MediatR;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Text.Json;
using System.Threading.Tasks;
using UserManagement.Api.Helpers;
using UserManagement.Data.Dto;
using UserManagement.MediatR.Commands;
using UserManagement.MediatR.Queries;
namespace UserManagement.API.Controllers.AppSetting
{
///
/// App Setting
///
[Route("api/[controller]")]
[ApiController]
public class AppSettingController : BaseController
{
public IMediator _mediator { get; set; }
private readonly ILogger _logger;
///
/// App Setting
///
///
///
public AppSettingController(
IMediator mediator,
ILogger logger)
{
_mediator = mediator;
_logger = logger;
}
///
/// Create Appsetting
///
///
///
[HttpPost]
[Produces("application/json", "application/xml", Type = typeof(AppSettingDto))]
[ClaimCheck("app_settings_add")]
public async Task AddAppSetting(AddAppSettingCommand addAppSettingCommand)
{
var result = await _mediator.Send(addAppSettingCommand);
return ReturnFormattedResponse(result);
}
///
/// Update Exist AppSetting By Id
///
///
///
///
[HttpPut("{id}")]
[Produces("application/json", "application/xml", Type = typeof(AppSettingDto))]
[ClaimCheck("app_settings_edit")]
public async Task UpdateAppSetting(Guid id, UpdateAppSettingCommand updateAppSettingCommand)
{
updateAppSettingCommand.Id = id;
var result = await _mediator.Send(updateAppSettingCommand);
return ReturnFormattedResponse(result);
}
///
/// Get AppSetting By Id
///
///
///
[HttpGet("{id}", Name = "GetAppSetting")]
[Produces("application/json", "application/xml", Type = typeof(AppSettingDto))]
[ClaimCheck("app_settings_list")]
public async Task GetAppSetting(Guid id)
{
_logger.LogTrace("GetAppSetting");
var getAppSettingQuery = new GetAppSettingQuery
{
Id = id
};
var result = await _mediator.Send(getAppSettingQuery);
return ReturnFormattedResponse(result);
}
///
/// Get AppSetting By Key
///
///
///
[HttpGet("key/{id}", Name = "GetAppSettingByKey")]
[Produces("application/json", "application/xml", Type = typeof(AppSettingDto))]
[ClaimCheck("app_settings_list")]
public async Task GetAppSettingByKey(string key)
{
_logger.LogTrace("GetAppSettingByKey");
var getAppSettingByKeyQuery = new GetAppSettingByKeyQuery
{
Key = key
};
var result = await _mediator.Send(getAppSettingByKeyQuery);
return ReturnFormattedResponse(result);
}
///
/// Get All AppSettings
///
///
[HttpGet(Name = "GetAppSettings")]
[Produces("application/json", "application/xml", Type = typeof(List))]
[ClaimCheck("app_settings_list")]
public async Task GetAppSettings()
{
var getAllAppSettingQuery = new GetAllAppSettingQuery
{
};
var result = await _mediator.Send(getAllAppSettingQuery);
return ReturnFormattedResponse(result);
}
///
/// Delete AppSetting By Id
///
///
///
[HttpDelete("{Id}")]
[ClaimCheck("app_settings_add")]
public async Task DeleteAppSetting(Guid Id)
{
var deleteAppSettingCommand = new DeleteAppSettingCommand
{
Id = Id
};
var result = await _mediator.Send(deleteAppSettingCommand);
return ReturnFormattedResponse(result);
}
}
}