public override bool IsOn(IFemahContext context)
        {
            bool isOn;

            if ( context.HttpContext == null || context.HttpContext.Request == null )
            {
                return false;
            }

            // Check if a cookie for this switch exists already.
            if ( context.HttpContext.Request.Cookies.AllKeys.Contains(this.Name) )
            {
                if (!Boolean.TryParse(context.HttpContext.Request.Cookies[this.Name].Value, out isOn))
                {
                    isOn = false;
                }
            }
            else
            {
                // No cookie set.  Choose randomly if feature should be set or not.
                double threshold = PercentageOn / 100.0;
                isOn = _randomGenerator() < threshold;

                // Save value to cookie.
                context.HttpContext.Response.Cookies.Add( new HttpCookie(this.Name, isOn.ToString()) );
            }

            return isOn;
        }
        /// <summary>
        /// Determine if feature is on or off, according to the current user's roles.
        /// </summary>
        /// <param name="context"></param>
        /// <returns>True if feature is on, false otherwise.</returns>
        public override bool IsOn(IFemahContext context)
        {
            if (context.HttpContext == null || context.HttpContext.User == null)
            {
                return false;
            }

            if ( AcceptedRoles == null || AcceptedRoles.Count == 0 )
            {
                return false;
            }

            foreach ( var role in AcceptedRoles )
            {
                if ( context.HttpContext.User.IsInRole(role) )
                {
                    return true;
                }
            }

            return false;
        }
Beispiel #3
0
 public override bool IsOn( IFemahContext context )
 {
     // The simple feature switch is always on.
     return true;
 }