Catel.Fody.CatelPropertyWeaver.ImplementsICommand C# (CSharp) Method

ImplementsICommand() private method

private ImplementsICommand ( Mono.Cecil.PropertyDefinition property ) : bool
property Mono.Cecil.PropertyDefinition
return bool
        private bool ImplementsICommand(PropertyDefinition property)
        {
            var commandInterfaces = new List<string>(new[] { "ICommand", "ICatelCommand" });

            var resolvedType = property.PropertyType.Resolve();
            if (resolvedType == null)
            {
                return false;
            }

            if (resolvedType.IsInterface)
            {
                return commandInterfaces.Any(x => resolvedType.Name.Contains(x));
            }

            var baseTypes = resolvedType.GetBaseTypes(true);
            foreach (var baseType in baseTypes)
            {
                if (commandInterfaces.Any(x => baseType.Name.Contains(x)))
                {
                    return true;
                }
            }

            return false;
        }