private static bool ValidateCsib(string csib) { var sb = new StringBuilder(); var bytes = Encoding.ASCII.GetBytes(csib); for (var i = 0; i < bytes.Length; i++) { sb.Append(bytes[i]).Append(' '); } var blocks = sb.ToString().TrimEnd().Split(' '); var data = new sbyte[blocks.Length]; var index = 0; foreach (var b in blocks) { data[index++] = (sbyte)Convert.ToByte(b); } using var csmCsibData = new CSMCsibBlobContainer(data); using var csFromCSIB = new CSMCoordinateSystemContainer(); lock (TGLLock.CsdManagementLock) { CsdManagement.csmImportCoordSysFromCsib(csmCsibData, csFromCSIB) .Validate("attempting to import coordinate system from CSMCsibBlobContainer"); } return(true); }
/// <inheritdoc/> public CoordinateSystem GetCSDFromCSIB(string csibString) { if (string.IsNullOrEmpty(csibString)) { throw new ArgumentNullException(nameof(csibString), "CSIB string cannot be null"); } using var csContainer = new CSMCoordinateSystemContainer(); var csmCsibData = CreateCSMCsibBlobContainer(csibString); lock (TGLLock.CsdManagementLock) { CsdManagement.csmImportCoordSysFromCsib(csmCsibData, csContainer). Validate("attempting to import coordinate system from CSIB"); } return(ConvertICoordinateSystem(csContainer.GetSelectedRecord())); }