private static bool LoadRequiredFields(XmlNode inputNode, ValuePresentation unit) { var offsetValue = inputNode.GetXmlNodeValue("@B"); var scaleValue = inputNode.GetXmlNodeValue("@C"); var decimalDigitsValue = inputNode.GetXmlNodeValue("@D"); if (string.IsNullOrEmpty(offsetValue) || string.IsNullOrEmpty(scaleValue) || string.IsNullOrEmpty(decimalDigitsValue)) return false; long offset; if (!long.TryParse(offsetValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out offset)) return false; unit.Offset = offset; double scale; if (!double.TryParse(scaleValue, NumberStyles.Number, CultureInfo.InvariantCulture, out scale) || scale < 0) return false; unit.Scale = scale; byte decimalDigits; if (!byte.TryParse(decimalDigitsValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out decimalDigits) || decimalDigits < 0 || decimalDigits > 7) return false; unit.DecimalDigits = decimalDigits; return true; }
private bool LoadCellDimensions(XmlNode inputNode) { double gridCellSizeLatitude; if (!inputNode.GetXmlNodeValue("@C").ParseValue(out gridCellSizeLatitude) || gridCellSizeLatitude < 0 || gridCellSizeLatitude > 1) return false; double gridCellSizeLongitude; if (!inputNode.GetXmlNodeValue("@D").ParseValue(out gridCellSizeLongitude) || gridCellSizeLongitude < 0 || gridCellSizeLongitude > 1) return false; int columnCount; if (!inputNode.GetXmlNodeValue("@E").ParseValue(out columnCount) || columnCount < 0) return false; int rowCount; if (!inputNode.GetXmlNodeValue("@F").ParseValue(out rowCount) || rowCount < 0) return false; _descriptor.ColumnCount = columnCount; _descriptor.RowCount = rowCount; _descriptor.CellHeight = new NumericRepresentationValue(null, new NumericValue(null, gridCellSizeLatitude)); _descriptor.CellWidth = new NumericRepresentationValue(null, new NumericValue(null, gridCellSizeLongitude)); return true; }
private DataVariable LoadDataVariable(XmlNode inputNode) { var ddiValue = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(ddiValue)) return null; var ddi = Convert.ToInt32(ddiValue, 16); long dataValue; if (!inputNode.GetXmlNodeValue("@B").ParseValue(out dataValue)) dataValue = 0; var userUnit = _taskDocument.Units.FindById(inputNode.GetXmlNodeValue("@E")); var unit = UnitFactory.Instance.GetUnitByDdi(ddi); var dataVariable = new DataVariable { Ddi = ddi, Value = unit.ConvertFromIsoUnit(dataValue), ProductId = inputNode.GetXmlNodeValue("@C"), IsoUnit = unit, UserUnit = userUnit.ToAdaptUnit() }; return dataVariable; }
private static GpsSource GetGpsSource(XmlNode inputNode) { var gpsSource = new GpsSource(); gpsSource.SourceType = GetSourceType(inputNode.GetXmlNodeValue("@I")); gpsSource.HorizontalAccuracy = GetAccuracy(inputNode.GetXmlNodeValue("@J")); gpsSource.VerticalAccuracy = GetAccuracy(inputNode.GetXmlNodeValue("@K")); return gpsSource; }
public static Point LoadPoint(XmlNode pointNode) { double latitude, longitude; if (pointNode.GetXmlNodeValue("@C").ParseValue(out latitude) == false || pointNode.GetXmlNodeValue("@D").ParseValue(out longitude) == false) return null; var point = new Point(); point.X = longitude; point.Y = latitude; return point; }
private static GpsSource GetGpsSource(XmlNode inputNode) { var gpsSource = new GpsSource { SourceType = GetSourceType(inputNode.GetXmlNodeValue("@D")) }; int satelliteCount; if (inputNode.GetXmlNodeValue("@G").ParseValue(out satelliteCount)) gpsSource.NumberOfSatellites = satelliteCount; gpsSource.GpsUtcTime = GetGpsTime(inputNode); return gpsSource; }
private static CropVariety LoadVariety(XmlNode inputNode, out string varietyId) { varietyId = inputNode.GetXmlNodeValue("@A"); var description = inputNode.GetXmlNodeValue("@B"); if (string.IsNullOrEmpty(varietyId) || string.IsNullOrEmpty(description)) return null; var variety = new CropVariety { ProductType = ProductTypeEnum.Variety, Description = description }; variety.Id.UniqueIds.Add(ImportHelper.CreateUniqueId(varietyId)); return variety; }
private static GuidanceGroupDescriptor LoadGuidanceGroup(XmlNode inputNode, out string groupId) { groupId = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(groupId)) return null; var group = new GuidanceGroup(); group.Description = inputNode.GetXmlNodeValue(@"B"); group.BoundingPolygon = ShapeLoader.LoadPolygon(inputNode.SelectNodes("PLN[0]")); var patterns = GuidancePatternLoader.LoadGuidancePatterns(inputNode.SelectNodes("GPN")); group.GuidancePatternIds = patterns.Values.Select(x => x.Id.ReferenceId).ToList(); return new GuidanceGroupDescriptor(group, patterns); }
private Crop LoadCrop(XmlNode inputNode, out string cropId) { var crop = new Crop(); // Required fields. Do not proceed if they are missing cropId = inputNode.GetXmlNodeValue("@A"); crop.Name = inputNode.GetXmlNodeValue("@B"); if (cropId == null || crop.Name == null) return null; crop.Id.UniqueIds.Add(ImportHelper.CreateUniqueId(cropId)); // Optional fields LoadVarieties(inputNode, crop); _taskDocument.LoadLinkedIds(cropId, crop.Id); return crop; }
private static bool IsProductMix(XmlNode inputNode) { var productType = inputNode.GetXmlNodeValue("@F"); return !string.IsNullOrEmpty(productType) && string.Equals(productType, "2", StringComparison.OrdinalIgnoreCase) && inputNode.SelectNodes("PRN").Count > 0; }
private static UniqueId LoadLink(XmlNode inputNode, out string linkId) { linkId = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(linkId)) return null; var linkValue = inputNode.GetXmlNodeValue("@B"); if (string.IsNullOrEmpty(linkValue)) return null; var uniqueId = new UniqueId { Id = linkValue, Source = inputNode.GetXmlNodeValue("@C") }; return uniqueId; }
private static bool VerifyRootNode(XmlNode rootNode) { var majorVersion = rootNode.GetXmlNodeValue("@VersionMajor"); IsoVersionEnum isoVersion; if (majorVersion == null || Enum.TryParse(majorVersion, true, out isoVersion) == false || isoVersion != IsoVersionEnum.Standard_V2_Final_Draft) return false; return true; }
private static void LoadLinkedGroup(XmlNode inputNode) { var groupId = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(groupId)) return; var groupTypeValue = inputNode.GetXmlNodeValue("@B"); if (string.IsNullOrEmpty(groupTypeValue)) return; var manufacturerGln = inputNode.GetXmlNodeValue("@C"); var groupNamespace = inputNode.GetXmlNodeValue("@D"); if (groupTypeValue.Equals("2", StringComparison.OrdinalIgnoreCase) && string.IsNullOrEmpty(manufacturerGln)) return; var linkNodes = inputNode.SelectNodes("LNK"); LoadLinks(linkNodes, groupTypeValue, manufacturerGln, groupNamespace); }
private void AssignCustomer(XmlNode inputNode, Farm farm) { var customerId = inputNode.GetXmlNodeValue("@I"); if (string.IsNullOrEmpty(customerId) == false) { var customer = _taskDocument.Customers.FindById(customerId); if (customer != null) farm.GrowerId = customer.Id.ReferenceId; } }
private void AssignFarm(XmlNode inputNode, Field field) { var farmId = inputNode.GetXmlNodeValue("@F"); if (string.IsNullOrEmpty(farmId)) return; var farm = _taskDocument.Farms.FindById(farmId); if (farm != null) field.FarmId = farm.Id.ReferenceId; }
private static void LoadPhoneNumbers(XmlNode inputNode, ContactInfo contactInfo) { contactInfo.Contacts = new List<Contact>(); var phone = inputNode.GetXmlNodeValue("@J"); if (string.IsNullOrEmpty(phone) == false) contactInfo.Contacts.Add(new Contact { Number = phone, Type = ContactTypeEnum.FixedPhone }); var mobile = inputNode.GetXmlNodeValue("@K"); if (string.IsNullOrEmpty(mobile) == false) contactInfo.Contacts.Add(new Contact { Number = mobile, Type = ContactTypeEnum.MobilePhone }); var fax = inputNode.GetXmlNodeValue("@L"); if (string.IsNullOrEmpty(fax) == false) contactInfo.Contacts.Add(new Contact { Number = fax, Type = ContactTypeEnum.Fax }); var email = inputNode.GetXmlNodeValue("@M"); if (string.IsNullOrEmpty(email) == false) contactInfo.Contacts.Add(new Contact { Number = email, Type = ContactTypeEnum.Email }); }
private void LoadCommentAllocations(XmlNode inputNode) { Note note = null; var commentId = inputNode.GetXmlNodeValue("@A"); if (!string.IsNullOrEmpty(commentId)) note = LoadCodedComment(inputNode, commentId); else note = new Note { Description = inputNode.GetXmlNodeValue("@C") }; if (note == null) return; var noteTimeStamp = AllocationTimestampLoader.Load(inputNode); note.TimeStamps.Add(noteTimeStamp); if (noteTimeStamp != null && noteTimeStamp.Location1 != null) note.SpatialContext = noteTimeStamp.Location1.Position; _allocations.Add(note); }
private Farm LoadFarm(XmlNode inputNode, out string farmId) { var farm = new Farm(); // Required fields. Do not proceed if they are missing farmId = inputNode.GetXmlNodeValue("@A"); farm.Description = inputNode.GetXmlNodeValue("@B"); if (farmId == null || farm.Description == null) return null; farm.Id.UniqueIds.Add(ImportHelper.CreateUniqueId(farmId)); // Optional fields LoadContactInfo(inputNode, farm); AssignCustomer(inputNode, farm); _taskDocument.LoadLinkedIds(farmId, farm.Id); return farm; }
private static DateTime GetGpsTime(XmlNode inputNode) { var gpsTime = inputNode.GetXmlNodeValue("@H"); var gpsDate = inputNode.GetXmlNodeValue("@I"); if (string.IsNullOrEmpty(gpsDate)) return DateTime.MinValue; int utcDays; if (!gpsDate.ParseValue(out utcDays)) return DateTime.MinValue; long utcMilliseconds = 0; if (!string.IsNullOrEmpty(gpsTime)) { if (!gpsTime.ParseValue(out utcMilliseconds)) utcMilliseconds = 0; } return GpsBaseDate.Add(TimeSpan.FromDays(utcDays).Add(TimeSpan.FromMilliseconds(utcMilliseconds))); }
private TreatmentZone LoadTreatmentZone(XmlNode inputNode, out int zoneId) { // Required fields. Do not proceed if they are missing if (!inputNode.GetXmlNodeValue("@A").ParseValue(out zoneId)) return null; // Optional fields var zone = new TreatmentZone { Variables = new List<DataVariable>() }; zone.Name = inputNode.GetXmlNodeValue("@B"); LoadDataVariables(inputNode.SelectNodes("PDV"), zone); return zone; }
private List<DataVariable> GetDataVariables(XmlNode inputNode) { var dataVariables = new List<DataVariable>(); int treatmentZoneId; if (!inputNode.GetXmlNodeValue("@J").ParseValue(out treatmentZoneId)) return dataVariables; _descriptor.ProductRateTemplateId = treatmentZoneId; var treatmentZone = _treatmentZones.FindById(treatmentZoneId); if (treatmentZone == null || treatmentZone.Variables == null) return dataVariables; return treatmentZone.Variables; }
private static IsoUnit LoadUnit(XmlNode inputNode) { //var valueUnitId = inputNode.GetXmlNodeValue("@D"); var quantityDdiValue = inputNode.GetXmlNodeValue("@E"); int quantityDdi = Convert.ToInt32(quantityDdiValue, 16); switch (quantityDdi) { case 0x48: // DDI 72 case 0x4B: // DDI 75 case 0x4E: // DDI 78 return UnitFactory.Instance.GetUnitByDdi(quantityDdi); } return null; }
private ValuePresentation LoadUnit(XmlNode inputNode, out string unitId) { var unit = new ValuePresentation(); // Required fields. Do not proceed if they are missing unitId = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(unitId) || !LoadRequiredFields(inputNode, unit)) return null; // Optional fields unit.Symbol = inputNode.GetXmlNodeValue("@E"); _taskDocument.LoadLinkedIds(unitId, unit.Id); return unit; }
private GuidanceAllocation LoadGuidanceAllocations(XmlNode inputNode) { var groupId = inputNode.GetXmlNodeValue("@A"); if (string.IsNullOrEmpty(groupId)) return null; var group = FindGuidanceGroup(groupId); var gsts = inputNode.SelectNodes("GST"); var allocation = new GuidanceAllocation { GuidanceGroupId = group.Group.Id.ReferenceId, GuidanceShift = GuidanceShiftLoader.Load(gsts, _taskDocument), TimeScopes = new List<TimeScope> { AllocationTimestampLoader.Load(inputNode) ?? AllocationTimestampLoader.Load(inputNode) } }; return allocation; }
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; }
private void LoadContactInfo(XmlNode inputNode, Farm farm) { var contactInfo = new ContactInfo(); contactInfo.AddressLine1 = inputNode.GetXmlNodeValue("@C"); contactInfo.PoBoxNumber = inputNode.GetXmlNodeValue("@D"); contactInfo.PostalCode = inputNode.GetXmlNodeValue("@E"); contactInfo.City = inputNode.GetXmlNodeValue("@F"); contactInfo.StateOrProvince = inputNode.GetXmlNodeValue("@G"); contactInfo.Country = inputNode.GetXmlNodeValue("@H"); farm.ContactInfo = contactInfo; _taskDocument.Contacts.Add(contactInfo); }
private ProductMix GetProduct(XmlNode inputNode) { var product = new ProductMix { ProductType = ProductTypeEnum.Mix, Form = ProductFormEnum.Unknown }; var groupId = inputNode.GetXmlNodeValue("@C"); if (string.IsNullOrEmpty(groupId)) return product; var groupNode = _taskDocument.RootNode.SelectSingleNode( string.Format(CultureInfo.InvariantCulture, "PGP[@A='{0}']", groupId)); if (groupNode == null) return product; var groupType = groupNode.GetXmlNodeValue("@C"); if (string.IsNullOrEmpty(groupType)) return product; if (string.Equals(groupType, "2", StringComparison.OrdinalIgnoreCase)) product.ProductType = ProductTypeEnum.Variety; return product; }
private void LoadContactInfo(XmlNode inputNode, Person worker) { var contactInfo = new ContactInfo(); contactInfo.AddressLine1 = inputNode.GetXmlNodeValue("@D"); contactInfo.PoBoxNumber = inputNode.GetXmlNodeValue("@E"); contactInfo.PostalCode = inputNode.GetXmlNodeValue("@F"); contactInfo.City = inputNode.GetXmlNodeValue("@G"); contactInfo.StateOrProvince = inputNode.GetXmlNodeValue("@H"); contactInfo.Country = inputNode.GetXmlNodeValue("@I"); LoadPhoneNumbers(inputNode, contactInfo); worker.ContactInfoId = contactInfo.Id.ReferenceId; _taskDocument.Contacts.Add(contactInfo); }
private Note LoadCodedComment(XmlNode inputNode, string commentId) { var comment = _taskDocument.Comments.FindById(commentId); if (comment == null) return null; var commentValueId = inputNode.GetXmlNodeValue("@B"); if (string.IsNullOrEmpty(commentValueId)) return null; var commentValue = comment.Values.FindById(commentValueId); if (commentValue == null) return null; return new Note { Value = new EnumeratedValue { Value = commentValue, Representation = comment.Comment } }; }
private Grower LoadCustomer(XmlNode inputNode, out string growerId) { Grower grower = new Grower(); // Required fields. Do not proceed if they are missing growerId = inputNode.GetXmlNodeValue("@A"); grower.Name = inputNode.GetXmlNodeValue("@B"); if (growerId == null || grower.Name == null) return null; grower.Id.UniqueIds.Add(ImportHelper.CreateUniqueId(growerId)); // Optional fields var firstName = inputNode.GetXmlNodeValue("@C"); if (!string.IsNullOrWhiteSpace(firstName)) grower.Name += ", " + firstName; LoadContactInfo(inputNode, grower); _taskDocument.LoadLinkedIds(growerId, grower.Id); return grower; }