Esempio n. 1
0
 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);
        }
Esempio n. 3
0
        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)));
        }