Esempio n. 1
0
        public ActionResult Detail(Guid?id)
        {
            if (id == null)
            {
                return(Content("非法参数"));
            }
            var viewModel = new V_HaviorVM();

            services.Command((db) =>
            {
                Mapper.Initialize(c => c.CreateMap <V_Havior, V_HaviorVM>());
                viewModel = Mapper.Map <V_HaviorVM>(db.Queryable <V_Havior>().SingleOrDefault(u => u.HaviorID == id));
            });
            return(View(viewModel));
        }
Esempio n. 2
0
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            if (filterContext.Result is ViewResult || filterContext.Result is PartialViewResult)
            {
                var _area = filterContext.RouteData.DataTokens["area"];
                if (filterContext.Result is ViewResult || filterContext.Result is PartialViewResult)
                {
                    if (_area != null && Keys.AccessVerifyAreas.Any(u => u.ToLower() == _area.ToString().ToLower()))
                    {
                        var _controller = filterContext.RouteData.Values["controller"].ToString();
                        var _action     = filterContext.RouteData.Values["action"].ToString();
                        var _httpMethod = filterContext.HttpContext.Request.HttpMethod;
                        var key         = (_area.ToString() + "_" + _controller + "_" + _action + "_" + _httpMethod).ToLower();

                        var viewModel  = new V_HaviorVM();
                        var buttonlist = new List <V_ButtonVM>();
                        var moduleList = new List <V_ModuleVM>();
                        if (!CacheManager.Contains(key))
                        {
                            var cfg = new MapperConfigurationExpression();
                            cfg.CreateMap <V_Havior, V_HaviorVM>();
                            cfg.CreateMap <V_Module, V_ModuleVM>();
                            cfg.CreateMap <V_Button, V_ButtonVM>();
                            Mapper.Initialize(cfg);
                            using (var services = new DbServices())
                            {
                                services.Command((db) =>
                                {
                                    viewModel = Mapper.Map <V_HaviorVM>(db.Queryable <V_Havior>().SingleOrDefault(u => u.Area == _area.ToString() && u.Controller == _controller.ToLower() && u.Action == _action.ToLower() && u.HttpMethod == _httpMethod.ToUpper()));
                                    if (viewModel != null)
                                    {
                                        moduleList = Mapper.Map <List <V_ModuleVM> >(db.Queryable <V_Module>().Where(c => true).ToList());
                                        buttonlist = Mapper.Map <List <V_ButtonVM> >(db.Queryable <V_Button>().Where(b => b.HaviorID == viewModel.HaviorID && b.Enable == true).OrderBy(u => u.Sort).OrderBy(u => u.SerialNo).ToList());
                                    }
                                });
                            }

                            if (viewModel != null)
                            {
                                // 生成面包屑导航
                                var crumbHtml = string.Empty;
                                CreateCrumbs(moduleList, viewModel.ModuleID, ref crumbHtml);
                                viewModel.Crumbs = crumbHtml + "<label class=\"backend-crumbs-separator\">/</label>\r\n<a href=\"" + viewModel.Url + "\" title=\"" + viewModel.Name + "\">" + viewModel.Name + "</a>";
                                // 生成列表按钮
                                viewModel.SelectButtons = CreateSelectButtons(buttonlist);
                                // 生成表单按钮
                                viewModel.FormButtons = CreateFormButtons(buttonlist);

                                CacheManager.Set(key, viewModel);
                            }
                        }
                        else
                        {
                            viewModel = CacheManager.Get <V_HaviorVM>(key);
                        }

                        var result = filterContext.Result;
                        if (result is ViewResult)
                        {
                            var vresult = result as ViewResult;
                            vresult.ViewData[Keys.HaviorInfoInjectionKey] = viewModel == null ? new V_HaviorVM() : viewModel;
                            filterContext.Result = vresult;
                        }
                        else if (result is PartialViewResult)
                        {
                            var presult = result as PartialViewResult;
                            presult.ViewData[Keys.HaviorInfoInjectionKey] = viewModel == null ? new V_HaviorVM() : viewModel;
                            filterContext.Result = presult;
                        }
                    }
                }
            }
        }