public IHttpActionResult GetPermissionsByEmployeeId(int id)
        {
            RedisKey cacheKey   = "employee_" + id + "_Permission";
            string   cacheValue = null;

            if (Global._enableRedisCache)
            {
                cacheValue = RedisCacheHelper.GetValueByKey(cacheKey);
            }
            if (cacheValue == null)
            {
                try
                {
                    PermissionCatalogModel model = new PermissionCatalogModel();
                    return(Content(HttpStatusCode.OK, model.GetAllPermissionByEmployeeId(id)));
                }
                catch (CDSException cdsEx)
                {
                    return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId)));
                }
                catch (Exception ex)
                {
                    return(Content(HttpStatusCode.InternalServerError, ex));
                }
            }
            else
            {
                return(Content(HttpStatusCode.OK, JsonConvert.DeserializeObject <List <Object> >(cacheValue)));
            }
        }
        public IHttpActionResult UpdatePermissionCatalog(int code, [FromBody] PermissionCatalogModel.Format_Update dataModel)
        {
            string logForm = "Form : " + JsonConvert.SerializeObject(dataModel);
            string logAPI  = "[Patch] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid || dataModel == null)
            {
                Global._appLogger.Warn(logAPI + " || Input Parameter not expected || " + logForm);
                return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.InvaildData()));
            }

            try
            {
                PermissionCatalogModel model = new PermissionCatalogModel();
                model.Update(code, dataModel);

                //RedisCacheHelper.DeletePermissionCatalogCache(id);
                return(Content(HttpStatusCode.OK, HttpResponseFormat.Success()));
            }
            catch (CDSException cdsEx)
            {
                return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId)));
            }
            catch (Exception ex)
            {
                StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex);
                logMessage.AppendLine(logForm);
                Global._appLogger.Error(logAPI + logMessage);

                return(Content(HttpStatusCode.InternalServerError, ex));
            }
        }
        public IHttpActionResult GetPermissionCatalogByCode(int code)
        {
            try
            {
                PermissionCatalogModel model = new PermissionCatalogModel();

                return(Content(HttpStatusCode.OK, model.GetByCode(code)));
            }
            catch (CDSException cdsEx)
            {
                return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId)));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, ex));
            }
        }
        public IHttpActionResult DeletePermissionCatalog(int code)
        {
            try
            {
                PermissionCatalogModel model = new PermissionCatalogModel();
                model.DeleteByCode(code);

                return(Content(HttpStatusCode.OK, HttpResponseFormat.Success()));
            }
            catch (CDSException cdsEx)
            {
                return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId)));
            }
            catch (Exception ex)
            {
                string        logAPI     = "[Delete] " + Request.RequestUri.ToString();
                StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex);
                Global._appLogger.Error(logAPI + logMessage);

                return(Content(HttpStatusCode.InternalServerError, ex));
            }
        }
        public IHttpActionResult GetAllPermissionCatalogs()
        {
            PermissionCatalogModel model = new PermissionCatalogModel();

            return(Content(HttpStatusCode.OK, model.GetAll()));
        }