Esempio n. 1
0
        public override void ValidateUrl()
        {
            switch (Request.GroupString["class"]) {
                case "entity":
                    switch (Request.GroupString["type"]) {
                        case "list":
                            short _typeID = Convert.ToInt16(Request.GroupString["id"]);

                            int _totalCout = -1;

                            int _pageIndex = 0,_pageSize = 20;
                            string _where = string.Empty, _order = string.Empty, _filters = string.Empty;
                            if (!string.IsNullOrEmpty(Request.Form["PageIndex"])) _pageIndex = Convert.ToInt32(Request.Form["PageIndex"]);
                            if (!string.IsNullOrEmpty(Request.Form["PageSize"])) _pageSize = Convert.ToInt32(Request.Form["PageSize"]);
                            if (!string.IsNullOrEmpty(Request.Form["Where"])) _where = Request.Form["Where"];
                            if (!string.IsNullOrEmpty(Request.Form["Order"])) _order = Request.Form["Order"];
                            if (!string.IsNullOrEmpty(Request.Form["Filter"])) _filters = Request.Form["Filter"].Trim(',') + ',';

                            XiaoYang.Entity.EntityHelper _helper = new Entity.EntityHelper(_typeID);

                            PageData.AddXyDataModel("EntityType", Entity.EntityType.GetInstance(_typeID));
                            System.Data.DataTable _dt = new System.Data.DataTable();
                            _dt.Columns.Add("Name", typeof(string));
                            _dt.Columns.Add("Key", typeof(string));
                            _dt.Columns.Add("IsShow", typeof(bool));
                            for (int i = 0; i < _helper.CacheInstance.AttributeKeys.Length; i++) {
                                System.Data.DataRow _row = _dt.NewRow();
                                _row["Name"] = _helper.CacheInstance.AttributeNames[i];
                                _row["Key"] = _helper.CacheInstance.AttributeKeys[i];
                                _row["IsShow"] = _filters.IndexOf(_helper.CacheInstance.AttributeKeys[i] + ',') != -1;
                                _dt.Rows.Add(_row);
                            }
                            PageData.Add("Attributes", _dt);
                            XiaoYang.Entity.EntityCollection _ec = _helper.GetList(_where, _pageIndex, _pageSize, _order, ref _totalCout);
                            PageData.AddEntireXyDataModel("EntityList", _ec);
                            PageData["EntityList"].CreatePagination(_pageIndex, _pageSize, _totalCout, 9);
                            break;
                        case "add":
                            XiaoYang.Entity.EntityHelper _addHelper = new Entity.EntityHelper(Convert.ToInt16(Request.GroupString["id"]));
                            long _addID = _addHelper.Add(Request.Form);
                            Response.Write("{status:'success',message:'Success',returnURL:'/entity_edit_" + _addID + "." + WebSetting.Config["ext"] + "'}");
                            Response.Redirect("/entity_edit_" + _addID + "." + WebSetting.Config["ext"] + "#successed");
                            break;
                        case "edit":
                            Entity.EntityBase _editEntity = Entity.EntityBase.GetInstance(Convert.ToInt64(Request.GroupString["id"]));
                            XiaoYang.Entity.EntityHelper _editHelper = new Entity.EntityHelper(_editEntity.TypeID);
                            _editHelper.Edit(Request.Form, _editEntity.ID);
                            Response.Redirect("/entity_edit_" + _editEntity.ID + "." + WebSetting.Config["ext"] + "#successed");
                            break;
                        case "del":
                            Entity.EntityBase _delEntity = Entity.EntityBase.GetInstance(Convert.ToInt64(Request.GroupString["id"]));
                            XiaoYang.Entity.EntityHelper _delHelper = new Entity.EntityHelper(_delEntity.TypeID);
                            _delHelper.Del(_delEntity.ID);
                            break;
                    }
                    break;
                case "type":
                    switch (Request.GroupString["type"]) {
                        case "add":
                            XiaoYang.Entity.EntityType.Add(Request.Form);
                            break;
                        case "getattr":
                            Xy.Web.Control.DataControl _dc = new Xy.Web.Control.DataControl();
                            System.Collections.Specialized.NameValueCollection _dcInitTag = new System.Collections.Specialized.NameValueCollection();
                            Xy.Web.HTMLContainer _dcData = new Xy.Web.HTMLContainer(WebSetting.Encoding);
                            Xy.Web.HTMLContainer _dcContent = new Xy.Web.HTMLContainer(WebSetting.Encoding);
                            _dcInitTag.Add("Provider", "Procedure");
                            _dcInitTag.Add("Command", @"select [PostAttribute].*, [PostType].[IsActive] from [PostAttribute] left join [PostType] on [PostAttribute].[TypeID] = [PostType].[ID] where [TypeID] = @TypeID");
                            _dcInitTag.Add("Parameter", @"{ TypeID=""" + Request.QueryString["ID"] + @"|i"" }");
                            _dcInitTag.Add("EnableScript", "True");
                            _dcInitTag.Add("EnableCode", "True");
                            _dcInitTag.Add("Xslt", "attributelist.xslt");
                            _dc.Init(_dcInitTag, "PostAttributeControl", 999);
                            _dc.InnerData = _dcData;
                            _dc.Handle(ThreadEntity, this, _dcContent);
                            Response.Write(_dcContent);
                            break;
                        case "active":
                            XiaoYang.Entity.EntityType.EditActive(Request.Form);
                            break;
                        case "multi":
                            XiaoYang.Entity.EntityType.EditWebRelated(Request.Form);
                            break;
                        case "display":
                            XiaoYang.Entity.EntityType.EditDisplay(Request.Form);
                            break;
                        case "del":
                            XiaoYang.Entity.EntityType.Del(Convert.ToInt16(Request.Form["ID"]));
                            break;
                    }
                    break;
                case "attr":
                    switch (Request.GroupString["type"]) {
                        case "add":
                            XiaoYang.Entity.EntityAttribute.Add(Request.Form);
                            break;
                        case "edit":
                            XiaoYang.Entity.EntityAttribute.Edit(Request.Form);
                            break;
                        case "del":
                            XiaoYang.Entity.EntityAttribute.Del(Request.Form);
                            break;
                    }
                    break;
            }
        }