Example #1
0
        private PFD Map(CropZone cropZone, Dictionary<int, string> keyToIsoId, int cropZoneIndex, Catalog setupCatalog)
        {
            var pfd = new PFD
            {
                C = cropZone.Description,
                D = (ulong)Math.Round(cropZone.Area.Value.Value, 0)
            };
            pfd.A = pfd.GetIsoId(cropZoneIndex);
            if (cropZone.CropId != null)
            {
                pfd.G = keyToIsoId[cropZone.CropId.Value];
            }
            pfd.I = keyToIsoId[cropZone.FieldId];
            var field = setupCatalog.Fields.First(f => f.Id.ReferenceId == cropZone.FieldId);
            if (field.FarmId != null)
            {
                pfd.F = keyToIsoId[field.FarmId.Value];
                var farm = setupCatalog.Farms.First(f => f.Id.ReferenceId == field.FarmId.Value);
                if (farm.GrowerId != null)
                    pfd.E = keyToIsoId[farm.GrowerId.Value];
            }
            if (cropZone.BoundingRegion != null)
            {
                pfd.Items = new IWriter[] { _boundaryMapper.Map(cropZone.BoundingRegion, BoundaryType.CropZone, cropZone.Description) };
            }

            keyToIsoId.Add(cropZone.Id.ReferenceId, pfd.A);
            return pfd;
        }
Example #2
0
        private void LoadCropZone(XmlNode inputNode, Field field, string fieldId)
        {
            var cropId = inputNode.GetXmlNodeValue("@G");
            if (string.IsNullOrEmpty(cropId))
                return;

            Crop crop;
            if (!_taskDocument.Crops.TryGetValue(cropId, out crop))
                return;

            var cropZone = new CropZone();
            cropZone.CropId = crop.Id.ReferenceId;
            cropZone.FieldId = field.Id.ReferenceId;
            cropZone.Description = field.Description;
            cropZone.Area = field.Area.Copy();
            cropZone.GuidanceGroupIds = field.GuidanceGroupIds != null ? field.GuidanceGroupIds.ToList() : null;

            _taskDocument.CropZones[fieldId] = cropZone;
        }