/// <summary> /// Create an initial conditions table in the DataStore. /// </summary> /// <param name="simulation">The simulation to create an table for</param> private static void CreateInitialConditionsTable(Simulation simulation) { // Create our initial conditions table. DataTable initialConditionsTable = new DataTable("InitialConditions"); initialConditionsTable.Columns.Add("ModelPath", typeof(string)); initialConditionsTable.Columns.Add("Name", typeof(string)); initialConditionsTable.Columns.Add("Description", typeof(string)); initialConditionsTable.Columns.Add("DataType", typeof(string)); initialConditionsTable.Columns.Add("Units", typeof(string)); initialConditionsTable.Columns.Add("DisplayFormat", typeof(string)); initialConditionsTable.Columns.Add("Total", typeof(int)); initialConditionsTable.Columns.Add("Value", typeof(string)); initialConditionsTable.Rows.Add( new object[] { Apsim.FullPath(simulation), "Simulation name", "Simulation name", "String", string.Empty, string.Empty, false, simulation.Name }); // Get all model properties and store in 'initialConditionsTable' foreach (Model model in Apsim.FindAll(simulation)) { string relativeModelPath = Apsim.FullPath(model).Replace(Apsim.FullPath(simulation) + ".", string.Empty); List <VariableProperty> properties = new List <VariableProperty>(); FindAllProperties(model, properties); foreach (VariableProperty property in properties) { string value = property.ValueWithArrayHandling.ToString(); if (value != string.Empty) { if (value != null && property.DataType == typeof(DateTime)) { value = ((DateTime)property.Value).ToString("yyyy-MM-dd hh:mm:ss"); } bool showTotal = !double.IsNaN(property.Total); initialConditionsTable.Rows.Add(new object[] { relativeModelPath, property.Name, property.Description, property.DataType.Name, property.Units, property.Format, showTotal, value }); } } } // Write to data store. DataStore dataStore = new DataStore(simulation); dataStore.DeleteOldContentInTable(simulation.Name, "InitialConditions"); dataStore.WriteTable(simulation.Name, "InitialConditions", initialConditionsTable); dataStore.Disconnect(); }
private void OnSimulationCompleted(object sender, EventArgs e) { DataStore dataStore = new DataStore(this); dataStore.DeleteOldContentInTable(this.Simulation.Name, "Messages"); dataStore.WriteTable(this.Simulation.Name, "Messages", this.messagesTable); dataStore.Disconnect(); }
private void OnSimulationCompleted(object sender, EventArgs e) { DataStore dataStore = new DataStore(this); dataStore.DeleteOldContentInTable(this.Simulation.Name, "Messages"); dataStore.WriteTable(this.Simulation.Name, "Messages", this.messagesTable); dataStore.Disconnect(); }
/// <summary> /// Create an initial conditions table in the DataStore. /// </summary> /// <param name="simulation">The simulation to create an table for</param> private static void CreateInitialConditionsTable(Simulation simulation) { // Create our initial conditions table. DataTable initialConditionsTable = new DataTable("InitialConditions"); initialConditionsTable.Columns.Add("ModelPath", typeof(string)); initialConditionsTable.Columns.Add("Name", typeof(string)); initialConditionsTable.Columns.Add("Description", typeof(string)); initialConditionsTable.Columns.Add("DataType", typeof(string)); initialConditionsTable.Columns.Add("Units", typeof(string)); initialConditionsTable.Columns.Add("DisplayFormat", typeof(string)); initialConditionsTable.Columns.Add("Total", typeof(int)); initialConditionsTable.Columns.Add("Value", typeof(string)); initialConditionsTable.Rows.Add( new object[] { Apsim.FullPath(simulation), "Simulation name", "Simulation name", "String", string.Empty, string.Empty, false, simulation.Name }); initialConditionsTable.Rows.Add( new object[] { Apsim.FullPath(simulation), "APSIM version", "APSIM version", "String", string.Empty, string.Empty, false, simulation.ApsimVersion }); initialConditionsTable.Rows.Add( new object[] { Apsim.FullPath(simulation), "Run on", "Run on", "String", string.Empty, string.Empty, false, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }); // Get all model properties and store in 'initialConditionsTable' foreach (Model model in Apsim.FindAll(simulation)) { string relativeModelPath = Apsim.FullPath(model).Replace(Apsim.FullPath(simulation) + ".", string.Empty); List<VariableProperty> properties = new List<VariableProperty>(); FindAllProperties(model, properties); foreach (VariableProperty property in properties) { string value = property.ValueWithArrayHandling.ToString(); if (value != string.Empty) { if (value != null && property.DataType == typeof(DateTime)) { value = ((DateTime)property.Value).ToString("yyyy-MM-dd HH:mm:ss"); } bool showTotal = !double.IsNaN(property.Total); initialConditionsTable.Rows.Add(new object[] { relativeModelPath, property.Name, property.Description, property.DataType.Name, property.Units, property.Format, showTotal, value }); } } } // Write to data store. DataStore dataStore = new DataStore(simulation); dataStore.DeleteOldContentInTable(simulation.Name, "InitialConditions"); dataStore.WriteTable(simulation.Name, "InitialConditions", initialConditionsTable); dataStore.Disconnect(); }