示例#1
0
        private bool SetResearchParameterValues(ResearchParameter rp, UIElement uIValue, ref Type paramType)
        {
            ResearchParameterInfo[] info = (ResearchParameterInfo[])rp.GetType().GetField(rp.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false);
            paramType = info[0].Type;
            string paramName = rp.ToString();
            object value;

            if (paramType == typeof(Boolean))
            {
                value = (bool)((CheckBox)uIValue).IsChecked ? true : false;
            }
            else
            {
                String paramValue = ((TextBox)uIValue).Text;
                value = Convert.ChangeType(paramValue, paramType, CultureInfo.InvariantCulture);
            }
            // TODO validate
            if (paramType == typeof(double) && !((double)value >= 0 && (double)value <= 1))
            {
                MessageBox.Show(paramName + " parameter value must be rational number between 0 and 1.", "Error");
                return(false);
            }
            LabSessionManager.SetResearchParameterValue(rp, value);
            return(true);
        }
示例#2
0
        private void LoadResearchAndGenerationParameters(Worksheet sheet, ResearchResult r)
        {
            int    rowIndex         = 12;
            string currentParameter = sheet.get_Range("A" + rowIndex).Cells.Value;

            if ("Research Parameters" == sheet.get_Range("A11").Cells.Value)
            {
                while (currentParameter != null)
                {
                    ResearchParameter rp = (ResearchParameter)Enum.Parse(typeof(ResearchParameter), currentParameter);
                    r.ResearchParameterValues.Add(rp, sheet.get_Range("B" + rowIndex).Cells.Value);
                    ++rowIndex;
                    currentParameter = sheet.get_Range("A" + rowIndex).Cells.Value;
                }
                rowIndex        += 2;
                currentParameter = sheet.get_Range("A" + rowIndex).Cells.Value;
            }
            while (currentParameter != null)
            {
                GenerationParameter gp = (GenerationParameter)Enum.Parse(typeof(GenerationParameter), currentParameter);
                r.GenerationParameterValues.Add(gp, sheet.get_Range("B" + rowIndex).Cells.Value);
                ++rowIndex;
                currentParameter = sheet.get_Range("A" + rowIndex).Cells.Value;
            }
        }
        private void InitializeResearchParameters()
        {
            ResearchParameterValues.Clear();

            RequiredResearchParameter[] rp = (RequiredResearchParameter[])this.GetType().GetCustomAttributes(typeof(RequiredResearchParameter), true);
            for (int i = 0; i < rp.Length; ++i)
            {
                ResearchParameter       p    = rp[i].Parameter;
                ResearchParameterInfo[] info = (ResearchParameterInfo[])p.GetType().GetField(p.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false);
                ResearchParameterValues.Add(rp[i].Parameter, info[0].DefaultValue);
            }
        }
示例#4
0
        private Object GetResearchParameterValue(ResearchParameter rp)
        {
            if (dType == DialogType.Create)
            {
                return(GetDefaultValueForResearchParameter(rp));
            }
            Dictionary <ResearchParameter, Object> rv = SessionManager.GetResearchParameterValues(researchId);

            if (rv.ContainsKey(rp))
            {
                return(rv[rp]);
            }
            else
            {
                return(GetDefaultValueForResearchParameter(rp));
            }
        }
        private void LoadResearchParameters(ResearchResult r)
        {
            while (reader.Read())
            {
                if (reader.Name == "ResearchParameter")
                {
                    reader.MoveToAttribute("name");
                    ResearchParameter rp = (ResearchParameter)Enum.Parse(typeof(ResearchParameter), reader.ReadContentAsString());

                    reader.MoveToAttribute("value");
                    ResearchParameterInfo rpInfo = (ResearchParameterInfo)(rp.GetType().GetField(rp.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);
                    if (rpInfo.Type.Equals(typeof(UInt32)))
                    {
                        r.ResearchParameterValues.Add(rp, UInt32.Parse(reader.Value));
                    }
                    else if (rpInfo.Type.Equals(typeof(Double)))
                    {
                        r.ResearchParameterValues.Add(rp, Double.Parse(reader.Value, CultureInfo.InvariantCulture));
                    }
                    else if (rpInfo.Type.Equals(typeof(Boolean)))
                    {
                        r.ResearchParameterValues.Add(rp, Boolean.Parse(reader.Value));
                    }
                    else if (rpInfo.Type.Equals(typeof(ResearchType)))
                    {
                        r.ResearchParameterValues.Add(rp, reader.Value);
                    }
                    else if (rpInfo.Type.Equals(typeof(MatrixPath)))
                    {
                        MatrixPath mp = new MatrixPath();
                        mp.Path = reader.Value;
                        r.ResearchParameterValues.Add(rp, mp);
                    }
                    else
                    {
                        Debug.Assert(false);
                        //throw new InvalidResearchParameters();
                    }
                }
                else if (reader.Name == "GenerationParameterValues")
                {
                    break;
                }
            }
        }
 /// <summary>
 /// Sets value of specified research parameter for specified research.
 /// </summary>
 /// <param name="id">ID of research.</param>
 /// <param name="p">Research parameter.</param>
 /// <param name="value">Value to set.</param>
 public static void SetResearchParameterValue(Guid id,
                                              ResearchParameter p,
                                              object value)
 {
     try
     {
         if (existingResearches[id].StatusInfo.Status == ResearchStatus.NotStarted)
         {
             existingResearches[id].ResearchParameterValues[p] = value;
         }
         else
         {
             throw new CoreException("Unable to modify research after start.");
         }
     }
     catch (KeyNotFoundException)
     {
         throw new CoreException("Specified research does not exists.");
     }
 }
 public RequiredResearchParameter(ResearchParameter parameter)
 {
     Parameter = parameter;
 }
 public RequiredResearchParameter(ResearchParameter parameter)
 {
     Parameter = parameter;
 }
示例#9
0
 public void SetResearchParameterValue(ResearchParameter p, Object value)
 {
     research.ResearchParameterValues[p] = value;
 }
 private Object GetResearchParameterValue(ResearchParameter rp)
 {
     if (dType == DialogType.Create)
         return GetDefaultValueForResearchParameter(rp);
     Dictionary<ResearchParameter, Object> rv = SessionManager.GetResearchParameterValues(researchId);
     if (rv.ContainsKey(rp))
         return rv[rp];
     else
         return GetDefaultValueForResearchParameter(rp);
 }
 private Type GetResearchParameterType(ResearchParameter r)
 {
     ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);
     return rInfo.Type;
 }
 private string GetDefaultValueForResearchParameter(ResearchParameter r)
 {
     ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);
     return rInfo.DefaultValue;
 }
示例#13
0
        private string GetDefaultValueForResearchParameter(ResearchParameter r)
        {
            ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);

            return(rInfo.DefaultValue);
        }
示例#14
0
        private Type GetResearchParameterType(ResearchParameter r)
        {
            ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);

            return(rInfo.Type);
        }
示例#15
0
        private void LoadGeneralInfo(String folderName, ResearchResult r)
        {
            using (StreamReader rd = new StreamReader(folderName + "\\general.txt"))
            {
                rd.ReadLine();
                r.ResearchID       = new Guid(rd.ReadLine().Substring(13));
                r.ResearchName     = rd.ReadLine().Substring(15);
                r.ResearchType     = (ResearchType)Enum.Parse(typeof(ResearchType), rd.ReadLine().Substring(15));
                r.ModelType        = (ModelType)Enum.Parse(typeof(ModelType), rd.ReadLine().Substring(12));
                r.RealizationCount = Int32.Parse(rd.ReadLine().Substring(19));
                r.Date             = DateTime.Parse(rd.ReadLine().Substring(7));
                r.Size             = Int32.Parse(rd.ReadLine().Substring(7));
                r.Edges            = Double.Parse(rd.ReadLine().Substring(8), CultureInfo.InvariantCulture);

                rd.ReadLine();

                String str = null;
                while ((str = rd.ReadLine()) != "Generation Parameters")
                {
                    String[]          split = str.Split(' ');
                    ResearchParameter rp    = (ResearchParameter)Enum.Parse(typeof(ResearchParameter), split[0]);

                    ResearchParameterInfo rpInfo = (ResearchParameterInfo)(rp.GetType().GetField(rp.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);
                    if (rpInfo.Type.Equals(typeof(Int32)))
                    {
                        r.ResearchParameterValues.Add(rp, Int32.Parse(split[1]));
                    }
                    else if (rpInfo.Type.Equals(typeof(Double)))
                    {
                        r.ResearchParameterValues.Add(rp, Double.Parse(split[1], CultureInfo.InvariantCulture));
                    }
                    else if (rpInfo.Type.Equals(typeof(Boolean)))
                    {
                        r.ResearchParameterValues.Add(rp, Boolean.Parse(split[1]));
                    }
                    else if (rpInfo.Type.Equals(typeof(ResearchType)))
                    {
                        r.ResearchParameterValues.Add(rp, split[1]);
                    }
                    else if (rpInfo.Type.Equals(typeof(MatrixPath)))
                    {
                        MatrixPath mp = new MatrixPath();
                        mp.Path = split[1];
                        r.ResearchParameterValues.Add(rp, mp);
                    }
                    else
                    {
                        Debug.Assert(false);
                    }
                }
                while ((str = rd.ReadLine()) != null)
                {
                    String[]            split = str.Split(' ');
                    GenerationParameter gp;
                    if (split[0] == "FileName")
                    {
                        gp = GenerationParameter.AdjacencyMatrix;
                    }
                    else
                    {
                        gp = (GenerationParameter)Enum.Parse(typeof(GenerationParameter), split[0]);
                    }

                    GenerationParameterInfo gpInfo = (GenerationParameterInfo)(gp.GetType().GetField(gp.ToString()).GetCustomAttributes(typeof(GenerationParameterInfo), false)[0]);
                    if (gpInfo.Type.Equals(typeof(Int32)))
                    {
                        r.GenerationParameterValues.Add(gp, Int32.Parse(split[1]));
                    }
                    else if (gpInfo.Type.Equals(typeof(Double)))
                    {
                        r.GenerationParameterValues.Add(gp, Double.Parse(split[1], CultureInfo.InvariantCulture));
                    }
                    else if (gpInfo.Type.Equals(typeof(Boolean)))
                    {
                        r.GenerationParameterValues.Add(gp, Boolean.Parse(split[1]));
                    }
                    else if (gpInfo.Type.Equals(typeof(MatrixPath)))
                    {
                        MatrixPath mp = new MatrixPath();
                        mp.Path = split[1];
                        r.GenerationParameterValues.Add(gp, mp);
                    }
                    else
                    {
                        Debug.Assert(false);
                    }
                }
            }
        }
示例#16
0
 /// <summary>
 /// Sets value of specified research parameter for specified research.
 /// </summary>
 /// <param name="id">ID of research.</param>
 /// <param name="p">Research parameter.</param>
 /// <param name="value">Value to set.</param>
 public static void SetResearchParameterValue(Guid id, 
     ResearchParameter p,
     object value)
 {
     try
     {
         if (existingResearches[id].Status == ResearchStatus.NotStarted)
             existingResearches[id].ResearchParameterValues[p] = value;
         else
             throw new CoreException("Unable to modify research after start.");
     }
     catch (KeyNotFoundException)
     {
         throw new CoreException("Specified research does not exists.");
     }
 }
示例#17
0
        private Type GetTypeForResearchParameter(ResearchParameter g)
        {
            ResearchParameterInfo gInfo = (ResearchParameterInfo)(g.GetType().GetField(g.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]);

            return(gInfo.Type);
        }
示例#18
0
        public static void SetResearchParameterValue(ResearchParameter p, object value)
        {
            //ToDo

            existingResearch.ResearchParameterValues[p] = value;
        }