Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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()));
        }