Exemplo n.º 1
0
        public Task <DpdtBindingReferenceSet> GetReferenceSet(
            CodeLensTarget target
            )
        {
            var opts = GeneralOptions.Instance;

            if (!opts.Enabled)
            {
                return(Task.FromResult(DpdtBindingReferenceSet.GetDisabled(target)));
            }

            var solutionBind = _containerAndScanner.Binds;

            if (solutionBind == null)
            {
                return(Task.FromResult(DpdtBindingReferenceSet.GetInProgress(target)));
            }

            var list = new List <DpdtBindingTarget>();

            foreach (var clusterBind in solutionBind.ClusterBindContainers)
            {
                foreach (var mpair in clusterBind.GetMethodBindContainerDict())
                {
                    var methodBind = mpair.Value;

                    foreach (var binding in methodBind.Bindings)
                    {
                        var bindingFound = binding.BindToType.FullyQualifiedName == target.FullyQualifiedName;
                        if (bindingFound)
                        {
                            var bt = new DpdtBindingTarget(
                                binding.UniqueUnstableIdentifier,
                                new DpdtClusterDetail(
                                    clusterBind.ClusterTypeInfo.FullNamespaceDisplayName,
                                    clusterBind.ClusterTypeInfo.Name,
                                    mpair.Key
                                    ),
                                new DpdtBindingDetail(
                                    binding.ScopeString,
                                    binding.IsConditional,
                                    binding.IsConventional
                                    )
                                );

                            list.Add(bt);
                        }
                    }
                }
            }

            return(Task.FromResult(DpdtBindingReferenceSet.GetWithResults(target, list)));
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public DpdtBindingReferenceSetViewModel(
            DpdtBindingReferenceSet set
            )
        {
            if (set is null)
            {
                throw new ArgumentNullException(nameof(set));
            }

            _set   = set;
            Target = set.Target;

            var bindingTargets = new List <IDpdtBindingTarget>();

            foreach (var bindingTarget in set.BindingTargets)
            {
                bindingTargets.Add(
                    new DpdtBindingTargetViewModel(
                        bindingTarget
                        )
                    );
            }
            BindingTargets = bindingTargets;
        }