/// <summary> /// Gets all enabled june build validation methods. /// </summary> /// <returns>The all enabled june build validation methods.</returns> /// <param name="assembly">Assembly.</param> private static List <MethodInfo> GetAllEnabledJuneBuildValidationMethods(Assembly assembly, JuneBuildTargets buildTarget) { if (null == assembly) { return(null); } return(assembly.GetTypes() .SelectMany(t => t.GetMethods()) .Where(m => { var attr = m.GetCustomAttributes(typeof(JuneBuildValidationAttribute), false); if (null != attr && 1 == attr.Length && attr[0] is JuneBuildValidationAttribute) { // Filter methods that are enabled //var buildAttr = (JuneBuildValidationAttribute)attr[0]; //return buildAttr.Enable && ((buildAttr.Targets & buildTarget) > 0); return true; } return false; }) .ToList()); }
public JuneBuildValidationAttribute(bool enabled, JuneBuildTargets targets) { this.Enable = enabled; this.Targets = targets; }
/// <summary> /// Gets all june validation items. /// </summary> /// <returns>The all june validation items.</returns> /// <param name="assembly">Assembly.</param> /// <param name="buildTarget">Build target.</param> private static List <JuneBuildValidationItem> GetAllJuneValidationItems(Assembly assembly, JuneBuildTargets buildTarget) { return(GetAllEnabledJuneBuildValidationMethods(assembly, buildTarget) .FindAll(VerifyMethodSignature) .ConvertAll(m => new JuneBuildValidationItem(m)) .ToList()); }