public FodyWeaverConfiguration([NotNull] FodyViewModel viewModel, [NotNull] string name, [NotNull, ItemNotNull] ICollection <FodyWeaver> weavers, int index)
        {
            _viewModel = viewModel;
            Name       = name;
            Weavers    = weavers;
            Index.SetBackingField(index);

            var solutionConfigurations = weavers
                                         .Where(w => w.Project == null)
                                         .Take(1)
                                         .Select(w => w?.Configuration)
                                         .DefaultIfEmpty();

            var projectConfigurations = weavers
                                        .Where(w => w.Project != null)
                                        .Select(w => w.Configuration)
                                        .Distinct(StringComparer.OrdinalIgnoreCase);

            Configurations = solutionConfigurations
                             .Concat(projectConfigurations)
                             .ToArray();

            Configuration = new ConfigurationIndexer(Configurations);
        }
 public ConfigurationIndexer([NotNull] FodyViewModel viewModel, [NotNull] Project project)
 {
     _viewModel = viewModel;
     _project   = project;
 }
 public FodyConfigurationMapping([NotNull] FodyViewModel viewModel, [NotNull] Project project)
 {
     Project       = project;
     Configuration = new ConfigurationIndexer(viewModel, project);
 }