public static Project Open(string filePath) { try { JsonSerializerSettings sett = new JsonSerializerSettings(); sett.NullValueHandling = NullValueHandling.Ignore; var strJson = System.IO.File.ReadAllText(filePath); var obj = JsonConvert.DeserializeObject(strJson, sett); var d = ((dynamic)obj)["DataSet"] as Newtonsoft.Json.Linq.JObject; var mods = ((dynamic)obj)["Models"] as Newtonsoft.Json.Linq.JArray; var name = ((dynamic)obj)["Name"] as Newtonsoft.Json.Linq.JValue; var projectInfo = ((dynamic)obj)["ProjectInfo"] as Newtonsoft.Json.Linq.JValue; //create NET Project object from Json var guid = System.Guid.NewGuid().ToString(); var project = new Project(guid); project.Name = (string)name; project.DataSet = d.ToObject <DataSet1>(); project.FilePath = filePath; project.ProjectInfo = (string)projectInfo; // //de-serialize models Model[] mod = mods.ToObject <Model[]>(); foreach (var m in mod) { var g = System.Guid.NewGuid().ToString(); var exp = new Data.Experiment(m.DataSet); var classes = exp.GetColumnsFromOutput()[0].Statistics.Categories; var label = exp.GetColumnsFromOutput()[0].Name; var mm = new Model(g); mm.Factory = m.Factory; mm.Name = m.Name; mm.DataSet = m.DataSet; mm.ExpData = exp; //mm.SetParent(pController); mm.InitPersistedModel(); //project.Models.Add(mm); project.Models.Add(mm); } return(project); } catch (Exception) { throw; } }
void UpdateModel(bool randomizeData) { if (MessageBox.Show("Once the model is updated, previous solution will be discarded.", "GPdotNET", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } DialogResult res = DialogResult.OK; var modelIndex = 0; var project = getActiveProject(); if (project == null) { MessageBox.Show("Project is not selected."); return; } if (project.Models.Count == 0) { MessageBox.Show("Select new project."); return; } else if (project.Models.Count > 1) { PromptForName dlg = new PromptForName(); dlg.comboBox1.Items.AddRange(project.Models.Select(x => x.Model.Name).ToArray()); res = dlg.ShowDialog(); modelIndex = dlg.comboBox1.SelectedIndex; } if (res == DialogResult.OK) { var model = project.Project.Models[modelIndex]; var dataset = project.Project.DataSet.GetDataSet(randomizeData); var exp = new Data.Experiment(dataset); model.DataSet = dataset; model.ExpData = exp; model.ResetSolution(); } }
/// <summary> /// Create model from Console app /// </summary> /// <param name="guid"></param> /// <param name="mName"></param> /// <param name="randomizeData"></param> public void CreateModel(string guid, string mName, bool randomizeData) { var dataset = DataSet.GetDataSet(randomizeData); var exp = new Data.Experiment(dataset); var name = Name; var classes = exp.GetColumnsFromOutput()[0].Statistics.Categories; var label = exp.GetColumnsFromOutput()[0].Name; var model = new Model(guid); //experiment model.ModelName = mName; model.Name = mName; //get data model.Project = this; model.DataSet = dataset; model.ExpData = exp; //init empty GPfactory based on default parameters and experiment model.InitNewModel(); Models.Add(model); }