Ejemplo n.º 1
0
        public virtual GodModeFeatureCollection Parse(string value)
        {
            if (string.IsNullOrEmpty(value))
                return new GodModeFeatureCollection();
            if (!value.Contains("#")) return new GodModeFeatureCollection();
            if (value.Contains("#") && !value.Contains("=")) return new GodModeFeatureCollection();

            var godModeCollection = new GodModeFeatureCollection();
            value.Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries).ToList().ForEach(
                feature =>
                {
                    var name = feature.Split('=').First();
                    var state = feature.Split('=').Last();

                    bool stateAsBool;
                    if (!bool.TryParse(state, out stateAsBool)) return;
                    if (godModeCollection.ContainsKey(name))
                    {
                        godModeCollection[name] = stateAsBool;
                    }
                    else
                    {
                        godModeCollection.Add(name, stateAsBool);
                    }
                });
            return godModeCollection;
        }
Ejemplo n.º 2
0
 public WindowsApplicationContext()
 {
     GodModeFeatures = new GodModeFeatureCollection(); // Not supported, yet
     #if DEBUG
     IsDebugMode = true;
     #else
     IsDebugMode = false;
     #endif
 }
Ejemplo n.º 3
0
        public virtual GodModeFeatureCollection Parse(string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(new GodModeFeatureCollection());
            }
            if (!value.Contains("#"))
            {
                return(new GodModeFeatureCollection());
            }
            if (value.Contains("#") && !value.Contains("="))
            {
                return(new GodModeFeatureCollection());
            }

            var godModeCollection = new GodModeFeatureCollection();

            value.Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries).ToList().ForEach(
                feature =>
            {
                var name  = feature.Split('=').First();
                var state = feature.Split('=').Last();

                bool stateAsBool;
                if (!bool.TryParse(state, out stateAsBool))
                {
                    return;
                }
                if (godModeCollection.ContainsKey(name))
                {
                    godModeCollection[name] = stateAsBool;
                }
                else
                {
                    godModeCollection.Add(name, stateAsBool);
                }
            });
            return(godModeCollection);
        }
Ejemplo n.º 4
0
        public static void SaveInCookie(HttpContextBase context, GodModeFeatureCollection featureCollection)
        {
            if (context == null || context.Request == null || context.Request.QueryString == null || context.Response == null || context.Request.Url == null)
            {
                return;
            }

            const string persistParamName     = "FB_persist";
            const string featureBeeCookieName = "featureBee";

            var shouldPersistParam = context.Request.QueryString[persistParamName];

            if (shouldPersistParam != null &&
                shouldPersistParam.ToLower(CultureInfo.InvariantCulture) == bool.TrueString.ToLower())
            {
                var builder = new StringBuilder();

                builder.Append("#");
                foreach (var feature in featureCollection)
                {
                    builder.Append(feature.Key + "=" + feature.Value.ToString().ToLower() + "#");
                }

                var host = context.Request.Url.Host;
                host = host.Contains(".") ? host.Substring(host.IndexOf(".", StringComparison.Ordinal)) : host;

                context.Response.Cookies.Set(
                    new HttpCookie(featureBeeCookieName)
                {
                    Value    = HttpUtility.UrlEncode(builder.ToString()),
                    Path     = "/",
                    HttpOnly = false,
                    Expires  = DateTime.Now.AddDays(30),
                    Domain   = host
                }
                    );
            }
        }
Ejemplo n.º 5
0
        public static void SaveInCookie(HttpContextBase context, GodModeFeatureCollection featureCollection)
        {
            if (context == null || context.Request == null || context.Request.QueryString == null || context.Response == null || context.Request.Url == null)
            {
                return;
            }

            const string persistParamName = "FB_persist";
            const string featureBeeCookieName = "featureBee";

            var shouldPersistParam = context.Request.QueryString[persistParamName];

            if (shouldPersistParam != null
                && shouldPersistParam.ToLower(CultureInfo.InvariantCulture) == bool.TrueString.ToLower())
            {
                var builder = new StringBuilder();

                builder.Append("#");
                foreach (var feature in featureCollection)
                {
                    builder.Append(feature.Key + "=" + feature.Value.ToString().ToLower() + "#");
                }

                var host = context.Request.Url.Host;
                host = host.Contains(".") ? host.Substring(host.IndexOf(".", StringComparison.Ordinal)) : host;

                context.Response.Cookies.Set(
                    new HttpCookie(featureBeeCookieName)
                    {
                        Value = HttpUtility.UrlEncode(builder.ToString()),
                        Path = "/",
                        HttpOnly = false,
                        Expires = DateTime.Now.AddDays(30),
                        Domain = host
                    }
                );
            }
        }
Ejemplo n.º 6
0
 public void AddGodModeFeatures(GodModeFeatureCollection godModeFeatureCollection)
 {
     this.godModeFeatures.Combine(godModeFeatureCollection);
 }
Ejemplo n.º 7
0
 public GodModeEvaluator(GodModeFeatureCollection godModeFeatures)
 {
     this.godModeFeatures = godModeFeatures ?? new GodModeFeatureCollection();
 }
Ejemplo n.º 8
0
 public void AddGodModeFeatures(GodModeFeatureCollection godModeFeatureCollection)
 {
     this.godModeFeatures.Combine(godModeFeatureCollection);
 }
Ejemplo n.º 9
0
 public GodModeEvaluator(GodModeFeatureCollection godModeFeatures)
 {
     this.godModeFeatures = godModeFeatures ?? new GodModeFeatureCollection();
 }
Ejemplo n.º 10
0
 public WindowsApplicationContext()
 {
     GodModeFeatures = new GodModeFeatureCollection(); // Not supported, yet
     IsDebugMode = false; // Not supported, yet
 }