Esempio n. 1
0
        public List<string> CreateVariation(string name, List<VariedParameter> unvaried_yet,
            XmlFile xmlReference, ref int name_var_cnt, Dictionary<string, XmlFile> xmlFilesList)
        {
            int list_counter = 0;
            string local_name = name;
            List<VariedParameter> locally_unvaried, locally_varied;
            List<string> xmlNames = new List<string>();

            XmlFile xmlCopy;

            locally_unvaried = new List<VariedParameter>(unvaried_yet);

            while (locally_unvaried.Count > 0)
            {
                foreach (string value in locally_unvaried[list_counter].values)
                {
                    xmlReference.SetParam(locally_unvaried[list_counter].group_id,
                        locally_unvaried[list_counter].param_id, value);

                    if (locally_unvaried.Count > 1)
                    {
                        locally_varied = new List<VariedParameter>(locally_unvaried);
                        locally_varied.RemoveAt(list_counter);
                        CreateVariation(local_name, locally_varied, xmlReference,
                            ref name_var_cnt, xmlFilesList);
                    }
                    else
                    {
                        xmlCopy = new XmlFile();
                        xmlCopy.Name = local_name + "_" + name_var_cnt.ToString();
                        xmlCopy.Tag = xmlReference.Tag;
                        xmlCopy.TimeStamp = DateTime.Now;
                        xmlCopy.Content = xmlReference.Content;

                        xmlFilesList.Add(xmlCopy.Name, xmlCopy);
                        xmlNames.Add(xmlCopy.Name);
                        name_var_cnt++;
                    }
                }
                locally_unvaried.RemoveAt(list_counter);
                list_counter++;
                return xmlNames;
            }
            return xmlNames;
        }