/// <summary>Sows the specified population.</summary> /// <param name="population">The population.</param> /// <param name="cultivar">The cultivar.</param> /// <param name="depth">The depth.</param> /// <param name="rowSpacing">The row spacing.</param> /// <param name="budNumber">Bud number not used</param> /// <param name="maxCover">Maximum cover not used</param> /// <exception cref="System.Exception">Cultivar not specified on sow line.</exception> public void Sow(string cultivar, double population, double depth, double rowSpacing, double maxCover = 1, double budNumber = 1) { SowingData = new SowPlant2Type(); SowingData.Population = population; SowingData.Cultivar = cultivar; SowingData.Depth = depth; SowingData.RowSpacing = rowSpacing; if (SowingData.Cultivar == "") throw new Exception("Cultivar not specified on sow line."); // Find cultivar and apply cultivar overrides. cultivarDefinition = Cultivar.Find(Cultivars, SowingData.Cultivar); cultivarDefinition.Apply(this); if (NewCrop != null) { NewCropType Crop = new NewCropType(); Crop.crop_type = CropType; Crop.sender = Name; NewCrop.Invoke(Crop); } if (Sowing != null) Sowing.Invoke(this, new EventArgs()); if (PlantSowing != null) PlantSowing.Invoke(this, SowingData); Population.OnSow(SowingData); WriteSowReport(SowingData); OnPrepare(null, null); // Call this because otherwise it won't get called on the sow date. }
/// <summary>Sows the specified cultivar.</summary> /// <param name="cultivar">The cultivar.</param> /// <param name="population">The population.</param> /// <param name="depth">The depth.</param> /// <param name="rowSpacing">The row spacing.</param> /// <param name="maxCover">The maximum cover.</param> /// <param name="budNumber">The bud number.</param> /// <exception cref="System.Exception">Cultivar not specified on sow line.</exception> public void Sow(string cultivar, double population, double depth, double rowSpacing, double maxCover = 1, double budNumber = 1) { SowingData = new SowPlant2Type(); SowingData.Population = population; this.Population = population; SowingData.Depth = depth; SowingData.Cultivar = cultivar; SowingData.MaxCover = maxCover; SowingData.BudNumber = budNumber; SowingData.RowSpacing = rowSpacing; CropInGround = true; if (SowingData.Cultivar == "") throw new Exception("Cultivar not specified on sow line."); // Find cultivar and apply cultivar overrides. cultivarDefinition = Cultivar.Find(Cultivars, SowingData.Cultivar); cultivarDefinition.Apply(this); // Invoke a sowing event. if (Sowing != null) Sowing.Invoke(this, new EventArgs()); Summary.WriteMessage(this, string.Format("A crop of "+SowingData.Cultivar+" OilPalm was sown today at a population of " + population + " plants/m2 with " + budNumber + " buds per plant at a row spacing of " + rowSpacing + " and a depth of " + depth + " mm")); }