private void LoadRates(XmlNode inputNode, GridDescriptor gridDescriptor, Dictionary<int, TreatmentZone> treatmentZones, RasterGridPrescription prescription)
{
prescription.LossOfGpsRate = LoadRateFromTreatmentZones(inputNode.GetXmlNodeValue("@I"), treatmentZones).FirstOrDefault();
prescription.OutOfFieldRate = LoadRateFromTreatmentZones(inputNode.GetXmlNodeValue("@J"), treatmentZones).FirstOrDefault();
if (gridDescriptor.TreatmentZones != null)
{
var treatmentZone = treatmentZones.FindById(gridDescriptor.TreatmentZones.First());
if (treatmentZone == null)
return;
LoadProducts(treatmentZone, prescription);
LoadRateUnits(treatmentZone, prescription);
prescription.Rates = LoadRatesFromTreatmentZones(gridDescriptor, treatmentZones, prescription.ProductIds, prescription);
}
else if (gridDescriptor.ProductRates != null)
{
var treatmentZoneTemplate = treatmentZones.FindById(gridDescriptor.ProductRateTemplateId);
if (treatmentZoneTemplate == null)
return;
LoadProducts(treatmentZoneTemplate, prescription);
LoadRateUnits(treatmentZoneTemplate, prescription);
prescription.Rates = LoadRatesFromProducts(gridDescriptor, prescription.ProductIds, prescription);
}
}