private static void Main(string[] args)
        {
            var options = new CommandLineOptions();

            if (CommandLine.Parser.Default.ParseArguments(args, options))
            {
                /*
                 * Since it's the only "business" validation needed we keep it simple
                 */
                var componentloaded = new NugetLoader.NugetLoader(options.NugetLocalRepositoryPath).LoadRunnerFromPackage<Runner>(options.PackageName, options.PackageVersion, options.NugetRepositoryUrl);
                if (componentloaded != null)
                {
                    try
                    {
                        componentloaded.AnalyseAndPublish(options.TypeDefName, options.TypeDefVersion, options.TypeDefPackage, options.PackageName, options.PackageVersion, options.OutputPath);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error while send the model :\n" + e);
                    }
                }
                else {
                    Console.WriteLine(options.PackageName + ":" + options.PackageVersion + " failed to load.");
                }
            }
        }
        /**
         * DEVNOTE : on pose comme prédicat que cette méthode est dédiée à la création d'instance de NODE et rien d'autre
         */
        public INodeRunner createInstance(IContainerNodeMarshalled nodeInstance)
        {
            var typedef = nodeInstance.getTypeDefinition();
            var deployUnitDotNet = typedef.getDeployUnits().First(x => x.findFiltersByID("platform").getValue() == "dotnet");
            var name = deployUnitDotNet.getName();
            var version = deployUnitDotNet.getVersion();
            var instance = new NugetLoader.NugetLoader(_nugetLocalRepositoryPath).LoadRunnerFromPackage<NodeRunner>(name, version, _nugetRepositoryUrl);
            instance.ProceedInject(nodeInstance.path(), _nodeName, nodeInstance.getName(), _core);

            return instance;
        }
        /**
         * DEVNOTE : on pose comme prédicat que cette méthode est dédiée à la création d'instance de NODE et rien d'autre
         */

        public INodeRunner createInstance(IContainerNodeMarshalled nodeInstance)
        {
            var typedef          = nodeInstance.getTypeDefinition();
            var deployUnitDotNet = typedef.getDeployUnits().First(x => x.findFiltersByID("platform").getValue() == "dotnet");
            var name             = deployUnitDotNet.getName();
            var version          = deployUnitDotNet.getVersion();
            var instance         = new NugetLoader.NugetLoader(_nugetLocalRepositoryPath).LoadRunnerFromPackage <NodeRunner>(name, version, _nugetRepositoryUrl);

            instance.ProceedInject(nodeInstance.path(), _nodeName, nodeInstance.getName(), _core);

            return(instance);
        }
 public IComponentRunner LoadSomething(string name, string version, string path)
 {
     ComponentRunner ret = new NugetLoader.NugetLoader(_nugetLocalRepositoryPath).LoadRunnerFromPackage<ComponentRunner>(
                name, version, _nugetRepositoryUrl);
     if (ret != null)
     {
         ret.ProceedInject(path, _nodeName, name, _core);
     }
     else
     {
         Console.WriteLine("Failed to load a component. name: " + name + "; version: " + version + "; nuget.local.repository.path: " + _nugetLocalRepositoryPath + "; nuget.repository.url: " + _nugetRepositoryUrl);
     }
     return ret;
 }
        public IComponentRunner LoadSomething(string name, string version, string path)
        {
            ComponentRunner ret = new NugetLoader.NugetLoader(_nugetLocalRepositoryPath).LoadRunnerFromPackage <ComponentRunner>(
                name, version, _nugetRepositoryUrl);

            if (ret != null)
            {
                ret.ProceedInject(path, _nodeName, name, _core);
            }
            else
            {
                Console.WriteLine("Failed to load a component. name: " + name + "; version: " + version + "; nuget.local.repository.path: " + _nugetLocalRepositoryPath + "; nuget.repository.url: " + _nugetRepositoryUrl);
            }
            return(ret);
        }