public MoveToResourceViewModel(IVsixCompatibility vsixCompatibility, ICollection <string> patterns, ICollection <ResourceEntity> resourceEntities, string text, string extension, string?className, string?functionName, string?fileName)
        {
            ResourceEntities       = resourceEntities;
            SelectedResourceEntity = resourceEntities.FirstOrDefault();

            ExistingEntries = resourceEntities
                              .SelectMany(entity => entity.Entries)
                              .Where(entry => entry.Values[null] == text)
                              .ToArray();
            ReuseExisting = ExistingEntries.Any();

            SelectedResourceEntry = ExistingEntries.FirstOrDefault();
            _extension            = extension;

            Replacements = patterns.Select(p => new Replacement(p, pattern => vsixCompatibility.EvaluateMoveToResourcePattern(pattern, Key, ReuseExisting, SelectedResourceEntity, SelectedResourceEntry))).ToArray();
            Keys         = new[] { CreateKey(text, null, null), CreateKey(text, null, functionName), CreateKey(text, className ?? fileName, functionName) }.Distinct().ToArray();
            Key          = Keys.Skip(SelectedKeyIndex).FirstOrDefault() ?? Keys.FirstOrDefault();
            Value        = text;
        }
        public MoveToResourceViewModel([NotNull, ItemNotNull] ICollection <string> patterns, [NotNull][ItemNotNull] ICollection <ResourceEntity> resourceEntities, [NotNull] string text, [NotNull] string extension, [CanBeNull] string className, [CanBeNull] string functionName, [CanBeNull] string fileName)
        {
            ResourceEntities       = resourceEntities;
            SelectedResourceEntity = resourceEntities.FirstOrDefault();

            ExistingEntries = resourceEntities
                              .SelectMany(entity => entity.Entries)
                              .Where(entry => entry.Values[null] == text)
                              .ToArray();
            ReuseExisiting = ExistingEntries.Any();

            SelectedResourceEntry = ExistingEntries.FirstOrDefault();
            _extension            = extension;

            Replacements = patterns.Select(p => new Replacement(p, EvaluatePattern)).ToArray();
            Keys         = new[] { CreateKey(text, null, null), CreateKey(text, null, functionName), CreateKey(text, className ?? fileName, functionName) }.Distinct().ToArray();
            Key          = Keys.Skip(SelectedKeyIndex).FirstOrDefault() ?? Keys.FirstOrDefault();
            Value        = text;
        }
예제 #3
0
        public MoveToResourceViewModel([NotNull, ItemNotNull] ICollection <string> patterns, [NotNull][ItemNotNull] ICollection <ResourceEntity> resourceEntities, [NotNull] string text, [NotNull] string extension, [CanBeNull] string className, [CanBeNull] string functionName)
        {
            Contract.Requires(patterns != null);
            Contract.Requires(resourceEntities != null);
            Contract.Requires(text != null);
            Contract.Requires(extension != null);

            ResourceEntities       = resourceEntities;
            SelectedResourceEntity = resourceEntities.FirstOrDefault();

            ExistingEntries = resourceEntities
                              .SelectMany(entity => entity.Entries)
                              .Where(entry => entry.Values[null] == text)
                              .ToArray();
            ReuseExisiting = ExistingEntries.Any();

            SelectedResourceEntry = ExistingEntries.FirstOrDefault();
            _extension            = extension;

            Replacements = patterns.Select(p => new Replacement(p, EvaluatePattern)).ToArray();
            Key          = CreateKey(text, className, functionName);
            Value        = text;
        }