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; }
/// <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); }
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)); } }
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)); } }
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); } }