public static void AddTypes(this IRunIntent runIntent, IEnumerable <Type> types) { foreach (var assemblyWithTypes in types.GroupBy(x => x.Assembly)) { var intent = Intent.Create(GetIdentity(assemblyWithTypes.Key)); runIntent.AddIntent(intent); assemblyWithTypes.ForEach(x => intent.AddIntent(Intent.Create(GetIdentity(x)))); } }
private IIntent CreateIntent(TaskExecutionNode node) { var task = (Task)node.RemoteTask; var intent = Intent.Create(task.Identity); node.Children.Select(CreateIntent).ForEach(intent.AddIntent); return(intent); }
private IEnumerable <Tuple <IIntent, TProvider> > Pair <TProvider> (IEnumerable <IIntent> intents, IEnumerable <TProvider> providers) where TProvider : IProvider { var providersList = providers.ToList(); var intentsList = intents.ToList(); var pairs = intentsList.Join( providersList, x => x.Identity.Relative, x => x.Identity.Relative, (intent, provider) => new Tuple <IIntent, TProvider>(intent, provider)).ToList(); return(intentsList.Count > 0 ? pairs : providersList.Select(provider => new Tuple <IIntent, TProvider>(Intent.Create(provider.Identity), provider))); }