Exemplo n.º 1
0
            public PageState <TPage> ReducePush(
                PageState <TPage> pageState,
                SceneState <TScene> sceneState,
                IPageEntity <TPage> action
                )
            {
                if (!config.PageMap.ContainsKey(action.Page))
                {
                    Debug.LogWarning(
                        "Page pushing failed. Missing configuration in SceneConfig.PageMap: " + action.Page);
                    return(pageState);
                }

                if (pageState.Stack.Any() && pageState.Current.Page.Equals(action.Page))
                {
                    Debug.LogWarning(
                        "Page pushing failed. Cannot push same page at once: " + action.Page);
                    return(pageState);
                }

                pageState.Stack.Add(action);
                pageState.SetStateChanged();

                ReduceAdjust(pageState, sceneState);
                return(pageState);
            }
Exemplo n.º 2
0
        public static Page ToPage(this IPageEntity entity)
        {
            if (entity == null)
            {
                return(null);
            }
            var dummy = new Page(new Site(entity.SiteName), entity.FullName);

            var page = DataContractSerializationHelper.DeserializeFromXml <Page>(entity.ObjectXml, KnownTypes);

            ((IPersistable)page).Init(dummy);

            return(page);
        }
Exemplo n.º 3
0
            public PageState <TPage> ReduceReplace(
                PageState <TPage> pageState,
                SceneState <TScene> sceneState,
                IPageEntity <TPage> action
                )
            {
                if (pageState.Stack.Any())
                {
                    pageState.Stack.RemoveLast();
                }

                ReducePush(pageState, sceneState, action);
                return(pageState);
            }