using CMS_CORE_Library.Models; using Step.Model.DTOModels; using Step.NC; using System.Globalization; using System.Web.Http; using static Step.Model.Constants; namespace Step.Controllers.WebApi { [RoutePrefix("api/nc")] public class NcApiController : ApiController { [Route("generic_data"), HttpGet] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.NC_DATA, Action = ACTIONS.READ)] public IHttpActionResult GetNcGenericData() { using (NcAdapter ncAdapter = new NcAdapter()) { 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) { using (NcAdapter ncAdapter = new NcAdapter()) { 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) { using (NcAdapter ncAdapter = new NcAdapter()) { 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() { using (NcAdapter ncAdapter = new NcAdapter()) { ncAdapter.Connect(); CmsError libraryError = ncAdapter.GetActiveClient(out int selectedClientId); if (libraryError.IsError()) return BadRequest(); return Ok(new { selectedClientId }); } } } }