using CMS_CORE_Library.Models; using System.Globalization; using System.Web.Http; using Thermo.Active.Model.DTOModels; using Thermo.Active.NC; using static Thermo.Active.Model.Constants; namespace Thermo.Active.Controllers.WebApi { [RoutePrefix("api/nc")] public class NcApiController : ApiController { /// /// Oggetto adapter condiviso da WebAPI /// protected static NcAdapter ncAdapter = new NcAdapter(); [Route("generic_data"), HttpGet] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.NC_DATA, Action = ACTIONS.READ)] public IHttpActionResult GetNcGenericData() { ncAdapter.Connect(); CmsError libraryError = ncAdapter.GetNcGenericData(out DTONcGenericDataModel genericData); if (libraryError.IsError()) if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED) return Ok(genericData); else return BadRequest(libraryError.localizationKey); return Ok(genericData); } [Route("active_language/{language}"), HttpPut] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)] public IHttpActionResult SetActiveLanguage(string language) { ncAdapter.Connect(); CmsError libraryError = ncAdapter.SetActiveLanguage(CultureInfo.CreateSpecificCulture(language)); if (libraryError.errorCode != CMS_ERROR_CODES.NOT_CONNECTED && libraryError.errorCode != CMS_ERROR_CODES.OK) return BadRequest(); else return Ok(); } [Route("active_screen/{screen:int}"), HttpPut] //[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)] public IHttpActionResult SetActiveScreen(int screen) { ncAdapter.Connect(); CmsError libraryError = ncAdapter.SetActiveScreen((short)screen); if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED) return BadRequest(); else return Ok(); } [Route("active_client"), HttpGet] public IHttpActionResult GetActiveClient() { ncAdapter.Connect(); CmsError libraryError = ncAdapter.GetActiveClient(out int selectedClientId); if (libraryError.IsError()) return BadRequest(); return Ok(new { selectedClientId }); } } }