Пример #1
0
 public string Execute(GenerationArguments Arguments, string TemplateName)
 {
     return
         (string.Join(Environment.NewLine,
                      Arguments.Item.Children
                      .Select(subItem => _templateProcessor.ProcessInjectionTemplate(GetSubarguments(Arguments, subItem, TemplateName)))));
 }
Пример #2
0
        public string Execute(GenerationArguments Arguments, IList <string> Parameters)
        {
            var methodParameters = new Object[] { Arguments }.Concat(Parameters).ToArray();

            MethodInfo method = GetType().GetMethod("Execute", methodParameters.Select(p => p.GetType()).ToArray());

            return((string)method.Invoke(this, methodParameters));
        }
        /// <summary>Разрешает значение свойства по его имени</summary>
        /// <param name="PropertyName">Название свойства</param>
        /// <param name="Arguments">Аргументы кодогенерации</param>
        /// <param name="Parameters"></param>
        public string Resolve(string PropertyName, GenerationArguments Arguments, IList <string> Parameters)
        {
            if (Arguments.ParentItem == null)
            {
                throw new ApplicationException(String.Format("Для элемента {0} не существует родительского элемента (возможно, это корневой элемент)",
                                                             Arguments.Item));
            }

            return(Arguments.ParentItem.Properties[PropertyName]);
        }
Пример #4
0
        private void InitPopulation(PIDTunerRequirements requirements, GenerationArguments generationArguments)
        {
            //TODO:Create init mutator
            var mutator = new RandomMutator();

            while (_currentPopulation.Count < generationArguments.GenerationSize)
            {
                var newInstance = new GeneticInstance(requirements, mutator);
                _currentPopulation.Add(newInstance);
            }
        }
Пример #5
0
        public GeneticTuner(PIDTunerRequirements requirements, MutationArguments mutator, GenerationArguments generationArguments)
        {
            if (requirements == null)
            {
                throw new ArgumentNullException(nameof(requirements));
            }

            _mutator             = mutator ?? throw new ArgumentNullException(nameof(mutator));
            _generationArguments = generationArguments;
            _generationArguments.Validate();

            CurrentGeneration = 0;

            InitPopulation(requirements, _generationArguments);
        }
        private void BackgroundGenerator_DoWork(object sender, DoWorkEventArgs e)
        {
            m_generationArguments = e.Argument as GenerationArguments;
            if (m_generationArguments == null)
            {
                return;
            }

            Log.Info("Started Cluster Generation for Cluster " + m_generationArguments.Name);

            if (!GenerateJob())
            {
                return;
            }

            m_clusterId = CreateCluster();

            GenerateStars();

            GenerateSystems();
        }
Пример #7
0
 /// <summary>Разрешает значение свойства по его имени</summary>
 /// <param name="PropertyName">Название свойства</param>
 /// <param name="Arguments">Аргументы кодогенерации</param>
 /// <param name="Parameters"></param>
 public string Resolve(string PropertyName, GenerationArguments Arguments, IList <string> Parameters)
 {
     return(Arguments.Item.Properties[PropertyName]);
 }
Пример #8
0
        /// <summary>Разрешает значение свойства по его имени</summary>
        /// <param name="PropertyName">Название свойства</param>
        /// <param name="Arguments">Аргументы кодогенерации</param>
        /// <param name="Parameters"></param>
        public string Resolve(string PropertyName, GenerationArguments Arguments, IList <string> Parameters)
        {
            IResolvingFunction function = _functions[PropertyName];

            return(function.Execute(Arguments, Parameters));
        }
Пример #9
0
 /// <summary>Разрешает значение свойства по его имени</summary>
 /// <param name="PropertyName">Название свойства</param>
 /// <param name="Arguments">Аргументы кодогенерации</param>
 /// <param name="Parameters"></param>
 public string Resolve(string PropertyName, GenerationArguments Arguments, IList <string> Parameters)
 {
     return(_dictionary[PropertyName]);
 }
Пример #10
0
 private GenerationArguments GetSubarguments(GenerationArguments Arguments, GenerationItem SubItem, string TemplateName)
 {
     return(new GenerationArguments(SubItem, Arguments.TemplatesDictionary[TemplateName], Arguments.TemplatesDictionary, Arguments.Item));
 }
Пример #11
0
 /// <summary>Вычисляет значение свойства по его имени</summary>
 /// <param name="PropertyName">Имя свойства</param>
 /// <param name="PropertyNamespace">Пространство имён свойства (задаётся перед символом)</param>
 /// <param name="Arguments">Аргументы кодогенерации</param>
 /// <param name="Parameters"></param>
 public string ResolvePropertyValue(string PropertyName, string PropertyNamespace, GenerationArguments Arguments, IList <string> Parameters)
 {
     return(_resolvingMethods[PropertyNamespace].Resolve(PropertyName, Arguments, Parameters));
 }