public override bool IsAvailable(IDataContext context)
{
IList<ITypeMember> typeMembers;
ITypeElement ownerType;
var moveStaticMembersIsAvailable = IsAvailable(context, out typeMembers, out ownerType);
if (!moveStaticMembersIsAvailable) return false;
Methods = new List<IMethod>();
foreach (var typeMember in typeMembers) {
var method = typeMember != null ? typeMember as IMethod : null;
if (method == null) return false;
// Do a quick check to see if Extension Methods are allowed.
var methodDeclaration = method.GetDeclarations().FirstOrDefault();
if (methodDeclaration != null) {
var treeNode = methodDeclaration.CreateTreeElementPointer().GetTreeNode();
if (treeNode != null && !treeNode.IsVB9Supported()) return false;
}
if (!method.IsStatic || method.Parameters.None() || method.Parameters.First().Kind != ParameterKind.VALUE) return false;
if (method.IsExtensionMethod ^ Direction == WorkflowDirection.ExtensionToShared) return false;
Methods.Add(method);
}
return true;
}