public Feature MapAsSingleFeature(Prescription adaptPrescription) { Feature prescriptionFeature = null; // Prescription, types if (adaptPrescription is RasterGridPrescription) { Console.WriteLine($"Mapping RasterGridPrescription"); prescriptionFeature = Map(adaptPrescription as RasterGridPrescription); } else if (adaptPrescription is VectorPrescription) { Console.WriteLine($"Mapping VectorPrescription"); prescriptionFeature = Map(adaptPrescription as VectorPrescription); } else if (adaptPrescription is ManualPrescription) { // @ToDo or not to do? just log? Console.WriteLine($"Mapping ManualPrescription"); prescriptionFeature = Map(adaptPrescription as ManualPrescription); } else { // @ToDo or not to do? just log? prescriptionFeature = Map(adaptPrescription); } if (prescriptionFeature != null) { prescriptionFeature.Properties.Add("Guid", UniqueIdMapper.GetUniqueGuid(adaptPrescription.Id)); Field adaptField = _dataModel.Catalog.Fields.Where(f => f.Id.ReferenceId == adaptPrescription.FieldId).FirstOrDefault(); if (adaptField != null) { Guid fieldguid = UniqueIdMapper.GetUniqueGuid(adaptField.Id); prescriptionFeature.Properties.Add("FieldId", fieldguid); } else { prescriptionFeature.Properties.Add("FieldId", adaptPrescription.FieldId); } if (_properties.Anonymise) { prescriptionFeature.Properties.Add("Description", "Prescription " + adaptPrescription.Id.ReferenceId); } else { prescriptionFeature.Properties.Add("Description", adaptPrescription.Description); } if (adaptPrescription.CropZoneId != null) { prescriptionFeature.Properties.Add("CropZoneId", adaptPrescription.CropZoneId); //adaptPrescription.CropZoneId //Prescription adaptPrescription = _dataModel.Catalog.Prescriptions.Where(f => f.Id.ReferenceId == workItemOperation.PrescriptionId).FirstOrDefault(); } } return(prescriptionFeature); }
private Feature Map(FieldBoundary fieldBoundary) { GeoJSON.Net.Geometry.MultiPolygon multiPolygon = MultiPolygonMapper.Map(fieldBoundary.SpatialData, _properties.AffineTransformation); if (multiPolygon == null) { return(null); } Dictionary <string, object> properties = new Dictionary <string, object>(); properties.Add("Guid", UniqueIdMapper.GetUniqueGuid(fieldBoundary.Id, UniqueIdSourceCNH)); if (_properties.Anonymise) { properties.Add("Description", "Field boundary " + fieldBoundary.Id.ReferenceId); } else { properties.Add("Description", fieldBoundary.Description); } // GpsSource var gpsSource = fieldBoundary.GpsSource; properties.Add("GpsSource", null); if (gpsSource != null) { properties["GpsSource"] = fieldBoundary.GpsSource.ToString(); } // Created time var creationTime = fieldBoundary.TimeScopes.Where(ts => ts.DateContext == DateContextEnum.Creation).FirstOrDefault(); properties.Add("CreationTime", null); if (creationTime != null) { if (creationTime.TimeStamp1 != null) { properties["CreationTime"] = ((DateTime)creationTime.TimeStamp1).ToString("O", CultureInfo.InvariantCulture); } } // Modified time var modifiedTime = fieldBoundary.TimeScopes.Where(ts => ts.DateContext == DateContextEnum.Modification).FirstOrDefault(); properties.Add("ModifiedTime", null); if (modifiedTime != null) { if (modifiedTime.TimeStamp1 != null) { properties["ModifiedTime"] = ((DateTime)modifiedTime.TimeStamp1).ToString("O", CultureInfo.InvariantCulture); } } Feature fieldBoundaryDto = new Feature(multiPolygon, properties); return(fieldBoundaryDto); }