/// <summary> /// Create a simulations model /// </summary> /// <param name="children">The child models</param> public static Simulations Create(IEnumerable <IModel> children) { Simulations newSimulations = new Core.Simulations(); newSimulations.Children.AddRange(children.Cast <Model>()); // Call the OnDeserialised method in each model. Events events = new Core.Events(newSimulations); object[] args = new object[] { true }; events.Publish("Deserialised", args); // Parent all models. newSimulations.Parent = null; Apsim.ParentAllChildren(newSimulations); // Call OnLoaded in all models. LoadedEventArgs loadedArgs = new LoadedEventArgs(); events.Publish("Loaded", new object[] { newSimulations, loadedArgs }); if (loadedArgs.errors.Count > 0) { newSimulations.LoadErrors = new List <Exception>(); newSimulations.LoadErrors.AddRange(loadedArgs.errors); } return(newSimulations); }
/// <summary> /// Create a simulations model /// </summary> /// <param name="children">The child models</param> public static Simulations Create(IEnumerable <IModel> children) { Simulations newSimulations = new Core.Simulations(); newSimulations.Children.AddRange(children.Cast <Model>()); // Parent all models. newSimulations.Parent = null; Apsim.ParentAllChildren(newSimulations); // Call OnCreated in all models. Apsim.ChildrenRecursively(newSimulations).ForEach(m => m.OnCreated()); return(newSimulations); }
/// <summary> /// Create a simulations model /// </summary> /// <param name="children">The child models</param> public static Simulations Create(IEnumerable <IModel> children) { Simulations newSimulations = new Core.Simulations(); newSimulations.Children.AddRange(children.Cast <Model>()); // Parent all models. newSimulations.Parent = null; newSimulations.ParentAllDescendants(); // Call OnCreated in all models. foreach (IModel model in newSimulations.FindAllDescendants().ToList()) { model.OnCreated(); } return(newSimulations); }
/// <summary> /// Create a simulations model /// </summary> /// <param name="children">The child models</param> public static Simulations Create(IEnumerable <Model> children) { Simulations newSimulations = new Core.Simulations(); newSimulations.Children.AddRange(children); // Call the OnDeserialised method in each model. Events events = new Core.Events(newSimulations); object[] args = new object[] { true }; events.Publish("Deserialised", args); // Parent all models. newSimulations.Parent = null; Apsim.ParentAllChildren(newSimulations); // Call OnLoaded in all models. newSimulations.LoadErrors = events.Publish("Loaded", null); return(newSimulations); }