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); }
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); } }
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 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; }
private string GetDefaultValueForResearchParameter(ResearchParameter r) { ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]); return(rInfo.DefaultValue); }
private Type GetResearchParameterType(ResearchParameter r) { ResearchParameterInfo rInfo = (ResearchParameterInfo)(r.GetType().GetField(r.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]); return(rInfo.Type); }
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); } } } }
/// <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."); } }
private Type GetTypeForResearchParameter(ResearchParameter g) { ResearchParameterInfo gInfo = (ResearchParameterInfo)(g.GetType().GetField(g.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]); return(gInfo.Type); }
public static void SetResearchParameterValue(ResearchParameter p, object value) { //ToDo existingResearch.ResearchParameterValues[p] = value; }