public FSerListResult GetListWithPaging(WCFAuthInfoVM entity_WCFAuthInfoVM, FunctionVM entity_SearchCriteria, int int_CurrentPage, int int_PageSize, string str_SortColumn, string str_SortDir, List <string> str_CustomFilter)
        {
            FSerListResult ret = null;

            ret = _client.GetListWithPaging(entity_WCFAuthInfoVM, entity_SearchCriteria, int_CurrentPage, int_PageSize, str_SortColumn, str_SortDir, str_CustomFilter);
            return(ret);
        }
Esempio n. 2
0
        public ActionResult Index(int page = 1, string sort = "", string sortDir = "")
        {
            //Message Box Title -- When Error occured, Message Box would be showed.
            string str_MsgBoxTitle = MultilingualHelper.GetStringFromResource(languageKey, "FManage");

            //Define output variable(recordCount && entityList_Result)
            int recordCount = 0;

            FunctionVM selectionCriteria = new FunctionVM();

            GetSelectionCriteriaFromViewData(ref selectionCriteria);

            List <FunctionVM> entityList_Result = new List <FunctionVM>();

            //Define wcf output object;
            FSerListResult entity_FSerListResult = null;

            WebCommonHelper webCommonHelper = new WebCommonHelper();

            webCommonHelper.CallWCFHelper(this, (entity_WCFAuthInfoVM) =>
            {
                entity_FSerListResult = funMgtHelper.Value.GetListWithPaging(entity_WCFAuthInfoVM, selectionCriteria, page, PageSize, sort, sortDir, CustomFilter(selectionCriteria));
            });

            //Assign data to local variable
            if (entity_FSerListResult != null)
            {
                recordCount       = entity_FSerListResult.Int_TotalRecordCount;
                entityList_Result = entity_FSerListResult.EntityList_FunctionVM;
            }

            //Set paging bar info (Total Record Count and Page Index)
            StorePageInfo(recordCount, page);

            //Cache selection criteria
            StoreSelectionCriteria <FunctionVM>(null);

            //Pass Error To UI
            string strError = "";

            if (entity_FSerListResult.StrList_Error.Count() > 0)
            {
                strError = string.Join("<br/>", entity_FSerListResult.StrList_Error.ToArray());
            }

            if (entity_FSerListResult.StrList_Error.Count > 0)
            {
                MsgInfo errorMsgInfo = new MsgInfo();
                errorMsgInfo.MsgTitle = str_MsgBoxTitle;
                errorMsgInfo.MsgDesc  = strError;
                errorMsgInfo.MsgType  = MessageType.ValidationError;
                ViewBag.ActionMessage = errorMsgInfo;
            }

            return(View(entityList_Result));
        }
Esempio n. 3
0
        public FSerListResult GetListWithPaging(WCFAuthInfoVM entity_WCFAuthInfoVM, FunctionVM entity_SearchCriteria, int int_CurrentPage, int int_PageSize, string str_SortColumn, string str_SortDir, List <string> str_CustomFilter)
        {
            try
            {
                //Restore Server Session
                RetrieveServerSideSession(entity_WCFAuthInfoVM);

                bool ret_CheckPrivilege = false;

                List <string> strList_Error = new List <string>();

                FSerListResult returnResult = new FSerListResult();

                CoolPrivilegeControlContext dbContext = CoolPrivilegeControlContext.CreateContext();

                FunctionRespository entityRepos_F = new FunctionRespository(dbContext, entity_BaseSession.ID);

                #region [ Check Privilege ]
                ret_CheckPrivilege = CheckAccPrivilege(entity_BaseSession.ID, entity_WCFAuthInfoVM.RequestFunKey, entity_WCFAuthInfoVM.RequestFunTypeKey, ref strList_Error);
                #endregion

                bool allowEdit = entity_BaseSession.CheckAccessRight(entity_WCFAuthInfoVM.RequestFunKey, "Edit", "", null);
                bool allowDel  = entity_BaseSession.CheckAccessRight(entity_WCFAuthInfoVM.RequestFunKey, "Delete", "", null);

                returnResult.StrList_Error         = strList_Error;
                returnResult.Int_TotalRecordCount  = 0;
                returnResult.EntityList_FunctionVM = new List <FunctionVM>();

                if (ret_CheckPrivilege)
                {
                    int recordCount = 0;

                    if (entity_SearchCriteria == null)
                    {
                        entity_SearchCriteria = new FunctionVM();
                    }

                    if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.FunctionPath) && str_CustomFilter.Count == 0)
                    {
                        str_CustomFilter.Add(String.Format("{0}.StartsWith(\"{1}\")", "F_Path", entity_SearchCriteria.FunctionPath));
                    }

                    if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.FunctionPath) && str_CustomFilter.Count == 0)
                    {
                        str_CustomFilter.Add(String.Format("{0}.StartsWith(\"{1}\")", "F_Key", entity_SearchCriteria.FunctionKey));
                    }

                    List <FunctionVM> vmList = entityRepos_F.GetEntityListByPage(entity_SearchCriteria, int_CurrentPage, int_PageSize, str_SortColumn, str_SortDir, out recordCount, str_CustomFilter, (entityList) =>
                    {
                        if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.FunctionName))
                        {
                            entityList = entityList.Where(current => MultilingualHelper.GetStringFromResource(languageKey, current.F_Key).ToUpper().StartsWith(entity_SearchCriteria.FunctionName.ToUpper())).ToList();
                        }
                        return(entityList);
                    }, (entityList_VM) =>
                    {
                        List <FunctionVM> ret = new List <FunctionVM>();
                        if (!string.IsNullOrWhiteSpace(str_SortColumn))
                        {
                            if (str_SortColumn.ToLower() == "functionpath")
                            {
                                if (str_SortDir.ToLower() == "asc")
                                {
                                    entityRepos_F.SortFunctionByPath(ret, entityList_VM, "ASC");
                                }
                                else
                                {
                                    entityRepos_F.SortFunctionByPath(ret, entityList_VM, "Desc");
                                }
                            }
                            else
                            {
                                ret = entityList_VM;
                            }
                        }
                        else
                        {
                            entityRepos_F.SortFunctionByPath(ret, entityList_VM, "ASC");
                        }
                        return(ret);
                    }, (entityList_VM) =>
                    {
                        foreach (var item in entityList_VM)
                        {
                            if (!string.IsNullOrWhiteSpace(MultilingualHelper.GetStringFromResource(languageKey, item.FunctionKey)))
                            {
                                item.FunctionName = MultilingualHelper.GetStringFromResource(languageKey, item.FunctionKey);
                            }
                            item.AllowDel  = allowDel;
                            item.AllowEdit = allowEdit;
                        }
                        return(entityList_VM);
                    });

                    returnResult.EntityList_FunctionVM = vmList;
                    returnResult.Int_TotalRecordCount  = recordCount;
                }

                return(returnResult);
            }
            catch (Exception ex)
            {
                throw new WebFaultException <WCFErrorContract>(new WCFErrorContract(ex), System.Net.HttpStatusCode.ExpectationFailed);
            }
        }