using AutoMapper; using Microsoft.AspNetCore.Mvc; using Microsoft.SelfService.Portal.Core.API.Dto.Service.Get; using Microsoft.SelfService.Portal.Core.API.Dto.Template.Get; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; using System.Reflection; namespace Microsoft.SelfService.Portal.Core.API.Controllers { [Route("api/[controller]")] [ApiController] public class TemplateController : Controller { private readonly ITemplateInterface _templateInterface; private readonly IMapper _mapper; public TemplateController(ITemplateInterface templateInterface, IMapper mapper) { _templateInterface = templateInterface; _mapper = mapper; } [HttpGet] [ProducesResponseType(200, Type = typeof(IEnumerable))] public IActionResult GetTemplates() { var templates = _mapper.Map>(_templateInterface.GetTemplates()); if (!ModelState.IsValid) return BadRequest(ModelState); return Ok(templates); } [HttpGet("{Id}")] [ProducesResponseType(200, Type = typeof(TemplateModel))] public IActionResult GetTemplateById(Guid Id) { if (!_templateInterface.CheckTemplateById(Id)) return NotFound(); var template = _mapper.Map(_templateInterface.GetTemplateById(Id)); if (!ModelState.IsValid) return BadRequest(ModelState); return Ok(template); } } }