Catel.ReSharper.Arguments.ArgumentContextActionBase.IsAvailable C# (CSharp) Метод

IsAvailable() публичный закрытый Метод

public final IsAvailable ( IUserDataHolder cache ) : bool
cache IUserDataHolder
Результат bool
        public override sealed bool IsAvailable(IUserDataHolder cache)
        {
            using (ReadLockCookie.Create())
            {
                if (Provider.SelectedElement != null)
                {
                    var catelArgumentType = TypeHelper.CreateTypeByCLRName(CatelCore.Argument, Provider.PsiModule, Provider.SelectedElement.GetResolveContext());
                    _parameterDeclaration = null;
                    _methodDeclaration = null;

                    if (catelArgumentType.GetTypeElement() != null)
                    {
                        if (Provider.SelectedElement != null && Provider.SelectedElement.Parent is IRegularParameterDeclaration)
                        {
                            _parameterDeclaration = Provider.SelectedElement.Parent as IRegularParameterDeclaration;
                            if (_parameterDeclaration.Parent != null && _parameterDeclaration.Parent != null
                                && _parameterDeclaration.Parent.Parent is ICSharpFunctionDeclaration)
                            {
                                _methodDeclaration =
                                    _parameterDeclaration.Parent.Parent as ICSharpFunctionDeclaration;
                            }
                        }
                    }
                    
                }
            }

            return _parameterDeclaration != null && IsArgumentTypeTheExpected(_parameterDeclaration.Type)
                   && _methodDeclaration != null
                   && !IsArgumentChecked(_methodDeclaration, _parameterDeclaration);
        }