136 lines
4.7 KiB
C#
136 lines
4.7 KiB
C#
using AzureNamingTool.Attributes;
|
|
using AzureNamingTool.Helpers;
|
|
using AzureNamingTool.Models;
|
|
using AzureNamingTool.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
|
|
|
namespace AzureNamingTool.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[ApiKey]
|
|
public class ResourceComponentsController : ControllerBase
|
|
{
|
|
private ServiceResponse serviceResponse = new();
|
|
// GET: api/<resourcecomponentsController>
|
|
/// <summary>
|
|
/// This function will return the components data.
|
|
/// </summary>
|
|
/// <param name="admin">bool - All/Only-enabled components flag</param>
|
|
/// <returns>json - Current components data</returns>
|
|
[HttpGet]
|
|
public async Task<IActionResult> Get(bool admin = false)
|
|
{
|
|
try
|
|
{
|
|
serviceResponse = await ResourceComponentService.GetItems(admin);
|
|
if (serviceResponse.Success)
|
|
{
|
|
return Ok(serviceResponse.ResponseObject);
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(serviceResponse.ResponseObject);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
AdminLogService.PostItem(new AdminLogMessage() { Title = "ERROR", Message = ex.Message });
|
|
return BadRequest(ex);
|
|
}
|
|
}
|
|
|
|
// GET api/<resourcecomponentsController>/5
|
|
/// <summary>
|
|
/// This function will return the specifed resource component data.
|
|
/// </summary>
|
|
/// <param name="id">int - Resource Component id</param>
|
|
/// <returns>json - Resource component data</returns>
|
|
[HttpGet("{id:int}")]
|
|
public async Task<IActionResult> Get(int id)
|
|
{
|
|
try
|
|
{
|
|
// Get list of items
|
|
serviceResponse = await ResourceComponentService.GetItem(id);
|
|
if (serviceResponse.Success)
|
|
{
|
|
return Ok(serviceResponse.ResponseObject);
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(serviceResponse.ResponseObject);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
AdminLogService.PostItem(new AdminLogMessage() { Title = "ERROR", Message = ex.Message });
|
|
return BadRequest(ex);
|
|
}
|
|
}
|
|
|
|
// POST api/<ResourceComponentsController>
|
|
/// <summary>
|
|
/// This function will create/update the specified component data.
|
|
/// </summary>
|
|
/// <param name="item">ResourceComponent (json) - Component data</param>
|
|
/// <returns>bool - PASS/FAIL</returns>
|
|
[HttpPost]
|
|
public async Task<IActionResult> Post([FromBody] ResourceComponent item)
|
|
{
|
|
try
|
|
{
|
|
serviceResponse = await ResourceComponentService.PostItem(item);
|
|
if (serviceResponse.Success)
|
|
{
|
|
return Ok(serviceResponse.ResponseObject);
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(serviceResponse.ResponseObject);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
AdminLogService.PostItem(new AdminLogMessage() { Title = "ERROR", Message = ex.Message });
|
|
return BadRequest(ex);
|
|
}
|
|
}
|
|
|
|
// POST api/<ResourceEnvironmentsController>
|
|
/// <summary>
|
|
/// This function will update all components data.
|
|
/// </summary>
|
|
/// <param name="items">List - ResourceComponent (json) - All components configuration data</param>
|
|
/// <returns>bool - PASS/FAIL</returns>
|
|
[HttpPost]
|
|
[Route("[action]")]
|
|
public async Task<IActionResult> PostConfig([FromBody] List<ResourceComponent> items)
|
|
{
|
|
try
|
|
{
|
|
serviceResponse = await ResourceComponentService.PostConfig(items);
|
|
if (serviceResponse.Success)
|
|
{
|
|
return Ok(serviceResponse.ResponseObject);
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(serviceResponse.ResponseObject);
|
|
}
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
AdminLogService.PostItem(new AdminLogMessage() { Title = "ERROR", Message = ex.Message });
|
|
return BadRequest(ex);
|
|
}
|
|
}
|
|
}
|
|
}
|