コード例 #1
0
        public bool UseCondition(IInputData input)
        {
            TkDebug.AssertArgumentNull(input, "input", this);

            if (Contains(ConditionUseType.True))
            {
                return(true);
            }
            bool result = true;

            if (Contains(ConditionUseType.Post))
            {
                result &= input.IsPost == IsPost;
            }
            if (Contains(ConditionUseType.Style))
            {
                result &= Styles != null && Styles.Contains(PageStyleClass.FromStyle(input.Style));
            }
            if (Contains(ConditionUseType.StyleStartsWith))
            {
                result &= MetaDataUtil.StartsWith(input.Style, StartsWith);
            }

            if (Contains(ConditionUseType.QueryString) && QueryStrings != null)
            {
                foreach (var item in QueryStrings)
                {
                    result &= input.QueryString[item.Name] == item.Value;
                }
            }

            return(result);
        }
コード例 #2
0
        private static IDisplay GetDisplay(Tk5FieldInfoEx field, IPageData pageData)
        {
            switch (pageData.Style.Style)
            {
            case PageStyle.Insert:
            case PageStyle.Update:
                return(field.Edit.Display.CreateObject());

            case PageStyle.Detail:
                return(field.ListDetail.DetailDisplay.CreateObject());

            case PageStyle.List:
                return(field.ListDetail.ListDisplay.CreateObject());

            default:
                if (MetaDataUtil.StartsWith(pageData.Style, "DetailList"))
                {
                    return(field.ListDetail.ListDisplay.CreateObject());
                }

                TkDebug.ThrowToolkitException(
                    string.Format(ObjectUtil.SysCulture, "当前页面类型是{0},没有可用的Display,请不要使用这种PageMaker",
                                  PageStyleClass.FromStyle(pageData.Style)), field);
                return(null);
            }
        }
コード例 #3
0
        public InputDataProxy(IInputData source, PageStyleClass style, object postObject)
        {
            TkDebug.AssertArgumentNull(source, "source", null);
            TkDebug.AssertArgumentNull(style, "style", null);

            fStyle      = style;
            fSource     = source;
            fPostObject = postObject ?? source.PostObject;
        }
コード例 #4
0
ファイル: CoreUrlBuilder.cs プロジェクト: madiantech/tkcore
        public string Build(IPageStyle style, string moduleCreator, string source,
                            bool isContent = true, string handler = "c")
        {
            if (!(style is PageStyleClass styleClass))
            {
                styleClass = PageStyleClass.FromStyle(style);
            }
            string director = isContent ? string.Empty : "~";

            return($"/{handler}/{director}{moduleCreator}/{styleClass}/{source}");
        }
コード例 #5
0
        internal PageInfo(IPageData pageData, SessionGlobal sessionGbl)
        {
            IUserInfo info = WebGlobalVariable.Info;

            UserId        = info.UserId.ConvertToString();
            RoleId        = info.MainOrgId.ConvertToString();
            Source        = pageData.SourceInfo.Source;
            Module        = true;
            IsHttpPost    = pageData.IsPost;
            Guid          = sessionGbl.TempIndentity;
            SessionId     = sessionGbl.SessionId;
            Culture       = ObjectUtil.SysCulture;
            Style         = PageStyleClass.FromStyle(pageData.Style);
            ModuleCreator = pageData.SourceInfo.ModuleCreator;
        }
コード例 #6
0
        private PageConfigItem GetConfigItem(IPageStyle style)
        {
            if (fDictionary == null)
            {
                return(null);
            }

            PageStyleClass styleClass = PageStyleClass.FromStyle(style);
            PageConfigItem result;

            if (fDictionary.TryGetValue(styleClass, out result))
            {
                return(result);
            }
            return(null);
        }
コード例 #7
0
        public void Check(DataRightEventArgs e)
        {
            PageStyleClass         style = PageStyleClass.FromStyle(e.Style);
            CompositeDataRightItem item;

            if (fDictionary.TryGetValue(style, out item))
            {
                item.DataRight.CreateObject(e.FieldIndexer).Check(e);
            }
            else
            {
                if (!HasRightIfNoItem)
                {
                    throw new NoDataRightException();
                }
            }
        }
コード例 #8
0
        public IParamBuilder GetListSql(ListDataRightEventArgs e)
        {
            PageStyleClass         style = (PageStyleClass)PageStyle.List;
            CompositeDataRightItem item;

            if (fDictionary.TryGetValue(style, out item))
            {
                return(item.DataRight.CreateObject(e.FieldIndexer).GetListSql(e));
            }
            else
            {
                if (HasRightIfNoItem)
                {
                    return(null);
                }
                else
                {
                    return(SqlParamBuilder.NoResult);
                }
            }
        }
コード例 #9
0
 public CompositeDataRightItem(PageStyleClass style, IConfigCreator <IDataRight> dataRight)
 {
     Style     = style;
     DataRight = dataRight;
 }
コード例 #10
0
        public void Add(IPageStyle style, IConfigCreator <IDataRight> dataRight)
        {
            PageStyleClass pageStyle = PageStyleClass.FromStyle(style);

            Add(new CompositeDataRightItem(pageStyle, dataRight));
        }
コード例 #11
0
 public InputDataProxy(IInputData source, PageStyleClass style)
     : this(source, style, null)
 {
 }