コード例 #1
0
ファイル: ViewAttacher.cs プロジェクト: jorferreira/fubumvc
        public IViewProfile AddProfile(Type conditionType, Func<IViewToken, bool> filter, Func<IViewToken, string> nameCorrection)
        {
            _defaultExcludes.Add(filter);
            var profile = new ViewProfile(conditionType, filter, nameCorrection);
            _profiles.Add(profile);

            return profile;
        }
コード例 #2
0
        /// <summary>
        /// Create an attachment profile based on a runtime condition.  The original intent of view profiles
        /// was to enable multiple views per action based on the detected device of the user (desktop, tablet, smartphone),
        /// but is not limited to that functionality
        /// </summary>
        /// <param name="conditionType"></param>
        /// <param name="filter"></param>
        /// <param name="nameCorrection"></param>
        /// <returns></returns>
        public IViewProfile Profile(Type conditionType, Func <IViewToken, bool> filter,
                                    Func <IViewToken, string> nameCorrection)
        {
            _defaultExcludes.Add(filter);
            var profile = new ViewProfile(conditionType, filter, nameCorrection);

            _profiles.Add(profile);

            return(profile);
        }
コード例 #3
0
        internal IEnumerable <ProfileViewBag> Profiles(BehaviorGraph graph)
        {
            if (_profiles.Any())
            {
                foreach (var profile in _profiles)
                {
                    yield return(new ProfileViewBag(profile, graph));
                }

                Func <IViewToken, bool> defaultFilter = x => !_defaultExcludes.Any(test => test(x));
                var defaultProfile = new ViewProfile(typeof(Always), defaultFilter, x => x.Name());

                yield return(new ProfileViewBag(defaultProfile, graph));
            }
            else
            {
                yield return(new ProfileViewBag(new DefaultProfile(), graph));
            }
        }
コード例 #4
0
ファイル: ViewAttachmentPolicy.cs プロジェクト: xeno3/fubumvc
        internal IEnumerable <ProfileViewBag> Profiles(ViewBag views)
        {
            if (_profiles.Any())
            {
                foreach (var profile in _profiles)
                {
                    yield return(new ProfileViewBag(profile, views));
                }

                Func <IViewToken, bool> defaultFilter = x => !_defaultExcludes.Any(test => test(x));
                var defaultProfile = new ViewProfile(Always.Flyweight, defaultFilter, x => x.Name());

                yield return(new ProfileViewBag(defaultProfile, views));
            }
            else
            {
                yield return(new ProfileViewBag(new DefaultProfile(), views));
            }
        }
コード例 #5
0
ファイル: ViewAttacher.cs プロジェクト: jorferreira/fubumvc
        public IEnumerable<ProfileViewBag> Profiles(BehaviorGraph graph)
        {
            if (_profiles.Any())
            {
                foreach (var profile in _profiles)
                {
                    yield return new ProfileViewBag(profile, graph);
                }

                Func<IViewToken, bool> defaultFilter = x => !_defaultExcludes.Any(test => test(x));
                var defaultProfile = new ViewProfile(typeof(Always), defaultFilter, x => x.Name());

                yield return new ProfileViewBag(defaultProfile, graph);
            }
            else
            {
                yield return new ProfileViewBag(new DefaultProfile(), graph);
            }
        }