public questStatus Read(FilterFolderViewModel viewModel, out FilterFolderViewModel filterFolderViewModel)
        {
            // Initialize
            questStatus status = null;

            filterFolderViewModel = null;


            // Read filter
            FolderId            folderId         = new FolderId(viewModel.Id);
            List <FilterFolder> filterFolderList = null;
            FilterFoldersMgr    filterFoldersMgr = new FilterFoldersMgr(this.UserSession);

            status = filterFoldersMgr.Load(folderId, out filterFolderList);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }

            // Transfer model
            filterFolderViewModel = new FilterFolderViewModel();
            BufferMgr.TransferBuffer(viewModel, filterFolderViewModel);
            foreach (FilterFolder filterFolder in filterFolderList)
            {
                BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null;
                status = FormatBootstrapTreeviewNode(filterFolder, out bootstrapTreenodeViewModel);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
                filterFolderViewModel.Items.Add(bootstrapTreenodeViewModel);
            }
            return(new questStatus(Severity.Success));
        }
        public questStatus Delete(FilterFolderViewModel filterFolderViewModel)
        {
            // Initialize
            questStatus status = null;



            // Delete the folder
            ////FilterFolderId filterFolderId = new FilterFolderId(filterFolderViewModel.Id);
            ////FilterFoldersMgr filterFoldersMgr = new FilterFoldersMgr(this.UserSession);
            ////status = filterFoldersMgr.Delete(filterFolderId);
            ////if (!questStatusDef.IsSuccess(status))
            ////{
            ////    FormatErrorMessage(status, filterFolderViewModel);
            ////    return (status);
            ////}


            FilterFolderId filterFolderId = new FilterFolderId(filterFolderViewModel.Id);
            FolderMgr      folderMgr      = new FolderMgr(this.UserSession);

            status = folderMgr.Delete(filterFolderId);
            if (!questStatusDef.IsSuccess(status))
            {
                FormatErrorMessage(status, filterFolderViewModel);
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
        public ActionResult Read(FilterFolderViewModel viewModel)
        {
            // Initialize
            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));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Get filter folders
            *---------------------------------------------------------------------------------------------------------------------------------*/
            FolderId folderId = new FolderId(viewModel.Id);
            FilterFolderViewModel filterFolderViewModel = null;
            FilterFolderModeler   filterFolderModeler   = new FilterFolderModeler(this.Request, this.UserSession);

            status = filterFolderModeler.Read(viewModel, out filterFolderViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                userMessageModeler = new UserMessageModeler(status);
                return(Json(userMessageModeler, JsonRequestBehavior.AllowGet));
            }

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

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

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

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

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


            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Folder successfully" + (bInitialCreation ? " created" : " updated"));
            filterFolderViewModel.questStatus = status;
            return(Json(filterFolderViewModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Delete(FilterFolderViewModel filterFolderViewModel)
        {
            questStatus status = null;

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

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

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            FilterFolderModeler filterFolderModeler = new FilterFolderModeler(this.Request, this.UserSession);

            status = filterFolderModeler.Delete(filterFolderViewModel);
            if (!questStatusDef.IsSuccess(status))
            {
                filterFolderViewModel.questStatus = status;
                return(Json(filterFolderViewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = new questStatus(Severity.Success, "Folder successfully deleted");
            filterFolderViewModel.questStatus = status;
            return(Json(filterFolderViewModel, JsonRequestBehavior.AllowGet));
        }
        /*==================================================================================================================================
        * Public Methods
        *=================================================================================================================================*/
        public questStatus Save(FilterFolderViewModel filterFolderViewModel)
        {
            // Initialize
            questStatus status = null;


            // Transfer model
            Quest.Functional.MasterPricing.FilterFolder filterFolder = new Functional.MasterPricing.FilterFolder();
            BufferMgr.TransferBuffer(filterFolderViewModel, filterFolder, true);
            if (filterFolderViewModel.FolderId < BaseId.VALID_ID)
            {
                filterFolder.FolderId = null;
            }


            // Determine if this is a create or update
            FilterFoldersMgr filterFoldersMgr = new FilterFoldersMgr(this.UserSession);

            if (filterFolderViewModel.Id < BaseId.VALID_ID)
            {
                // Create
                FilterFolderId filterFolderId = null;
                status = filterFoldersMgr.Create(filterFolder, out filterFolderId);
                if (!questStatusDef.IsSuccess(status))
                {
                    FormatErrorMessage(status, filterFolderViewModel);
                    return(status);
                }
                filterFolderViewModel.Id = filterFolderId.Id;
            }
            else
            {
                // Update
                status = filterFoldersMgr.Update(filterFolder);
                if (!questStatusDef.IsSuccess(status))
                {
                    FormatErrorMessage(status, filterFolderViewModel);
                    return(status);
                }
            }
            return(new questStatus(Severity.Success));
        }