public ActionResult Read(FilterEditorViewModel viewModel)
        {
            questStatus        status             = null;
            UserMessageModeler userMessageModeler = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(viewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            FilterId filterId = new FilterId(viewModel.Id);
            FilterEditorViewModel filterEditorViewModel = null;
            FilterEditorModeler   filterEditorModeler   = new FilterEditorModeler(this.Request, this.UserSession);

            status = filterEditorModeler.Read(filterId, out filterEditorViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success);
            filterEditorViewModel.questStatus = status;
            return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Save(FilterEditorViewModel filterEditorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                filterEditorViewModel.questStatus = status;
                return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(filterEditorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                filterEditorViewModel.questStatus = status;
                return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            bool bInitialCreation = filterEditorViewModel.Id < BaseId.VALID_ID ? true : false;
            FilterEditorModeler filterEditorModeler = new FilterEditorModeler(this.Request, this.UserSession);

            status = filterEditorModeler.Save(filterEditorViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                filterEditorViewModel.questStatus = status;
                return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
            }


            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Filter successfully" + (bInitialCreation ? " created" : " updated"));
            filterEditorViewModel.questStatus = status;
            return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult SQL(FilterPanelViewModel viewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(viewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            FilterId            filterId            = new FilterId(viewModel.Editor.FilterId);
            FilterSQLViewModel  filterSQLViewModel  = null;
            FilterEditorModeler filterEditorModeler = new FilterEditorModeler(Request, this.UserSession, viewModel);

            status = filterEditorModeler.Read(filterId, out filterSQLViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Filter SQL retrieved");
            filterSQLViewModel.questStatus = status;
            return(Json(filterSQLViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Delete(FilterEditorViewModel filterEditorViewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("LogOperation failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(filterEditorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                // TODO
                throw new Exception("Authorize failed");
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            FilterId            filterId            = new FilterId(filterEditorViewModel.Id);
            FilterEditorModeler filterEditorModeler = new FilterEditorModeler(this.Request, this.UserSession);

            status = filterEditorModeler.Delete(filterId);
            if (!questStatusDef.IsSuccess(status))
            {
                filterEditorViewModel.questStatus = status;
                return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Filter successfully deleted");
            filterEditorViewModel.questStatus = status;
            return(Json(filterEditorViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult FilterIdOptions(FilterEditorViewModel filterEditorViewModel)
        {
            questStatus status = null;


            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                UserMessageModeler userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler.UserMessage, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(filterEditorViewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                UserMessageModeler userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler.UserMessage, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            TablesetId             tablesetId          = new TablesetId(filterEditorViewModel.TablesetId);
            List <OptionValuePair> optionValuePairList = null;
            FilterEditorModeler    filterEditorModeler = new FilterEditorModeler(this.Request, this.UserSession);

            status = filterEditorModeler.GetFilterOptions(tablesetId, out optionValuePairList, filterEditorViewModel.FilterId.ToString());
            if (!questStatusDef.IsSuccess(status))
            {
                UserMessageModeler userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler.UserMessage, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Respond
            *---------------------------------------------------------------------------------------------------------------------------------*/
            return(Json(optionValuePairList, JsonRequestBehavior.AllowGet));
        }