using System; using System.Collections; using System.Collections.Generic; using BTCPayServer.Configuration; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using NBitcoin; using NBXplorer; namespace BTCPayServer.Plugins { public class PluginServiceCollection : IServiceCollection { public PluginServiceCollection(IServiceCollection inner, IServiceProvider bootstrapServices) { Inner = inner; BootstrapServices = bootstrapServices; } public ServiceDescriptor this[int index] { get => Inner[index]; set => Inner[index] = value; } public int Count => Inner.Count; public bool IsReadOnly => Inner.IsReadOnly; public IServiceCollection Inner { get; } public IServiceProvider BootstrapServices { get; } public void Add(ServiceDescriptor item) { Inner.Add(item); } public void Clear() { Inner.Clear(); } public bool Contains(ServiceDescriptor item) { return Inner.Contains(item); } public void CopyTo(ServiceDescriptor[] array, int arrayIndex) { Inner.CopyTo(array, arrayIndex); } public IEnumerator GetEnumerator() { return Inner.GetEnumerator(); } public int IndexOf(ServiceDescriptor item) { return Inner.IndexOf(item); } public void Insert(int index, ServiceDescriptor item) { Inner.Insert(index, item); } public bool Remove(ServiceDescriptor item) { return Inner.Remove(item); } public void RemoveAt(int index) { Inner.RemoveAt(index); } IEnumerator IEnumerable.GetEnumerator() { return Inner.GetEnumerator(); } } }