public static List <IRouterManager> GetAllRouterManagerImplementations() { List <IRouterManager> instances = new List <IRouterManager>(); var all = Assembly .GetEntryAssembly() .GetReferencedAssemblies() .Select(Assembly.Load) .SelectMany(x => x.DefinedTypes) .Where(type => typeof(IRouterManager).IsAssignableFrom(type.AsType()) && type.IsClass && !type.IsAbstract); foreach (var ti in all) { var t = ti.AsType(); if (!t.Equals(typeof(IRouterManager))) { IRouterManager instance = (IRouterManager)Activator.CreateInstance(t); instances.Add(instance); } } return(instances); }
public RouterAppService(IRepository <User, long> userRepository, IRouterManager routerManager) { _userRepository = userRepository; _routerManager = routerManager; }
public TelegramBotServer(ITelegramBotClient botClient, IAuthenticator authenticator, IRouterManager routerManager) { this.bot = new Lazy <Task <(ITelegramBotClient Client, string Name)> >(async() => { var botUser = await botClient.GetMeAsync().ConfigureAwait(false); return(botClient, botUser.FirstName); }); this.authenticator = authenticator; this.routerManager = routerManager; }