示例#1
0
        /// <summary>
        /// Decodes a ShGuid
        /// </summary>
        /// <param name="encodedShGuid"></param>
        /// <param name="settings"><see cref="ShGuidSettings"/> </param>
        /// <returns>A ShGuid</returns>
        public static ShGuid Decode(string encodedShGuid, ShGuidSettings settings = null)
        {
            settings = ShGuidSettings.CreateDefaultIfNull(settings);

            byte[] buffer      = DecodeToByteArray(encodedShGuid, settings);
            var    decodedGuid = new Guid(buffer);
            var    shGuid      = new ShGuid(decodedGuid, settings);

            return(shGuid);
        }
示例#2
0
        /// <summary>
        /// Try to parse a Guid and create a ShGuid
        /// </summary>
        /// <param name="stringifiedGuid">A stringified guid</param>
        /// <param name="shGuid">An initialized ShGuid</param>
        /// <param name="settings"><see cref="ShGuidSettings"/> </param>
        /// <returns><c>true</c> if the initialization was successful</returns>
        public static bool TryParse(string stringifiedGuid, out ShGuid shGuid, ShGuidSettings settings = null)
        {
            shGuid = null;
            Guid guid;

            if (Guid.TryParse(stringifiedGuid, out guid))
            {
                shGuid = new ShGuid(guid, settings);
                return(true);
            }

            return(false);
        }
示例#3
0
        /// <summary>
        /// Try decode an encoded ShGuid and create a ShGuid
        /// </summary>
        /// <param name="encodedShGuid">An encoded ShGuid</param>
        /// <param name="shGuid">An initialized ShGuid</param>
        /// <param name="settings"><see cref="ShGuidSettings"/></param>
        /// <returns><c>True</c> if the initialization was successful</returns>
        public static bool TryDecode(string encodedShGuid, out ShGuid shGuid, ShGuidSettings settings = null)
        {
            shGuid   = null;
            settings = ShGuidSettings.CreateDefaultIfNull(settings);

            Guid guid;

            try
            {
                var buffer          = DecodeToByteArray(encodedShGuid, settings);
                var stringifiedGuid = Encoding.UTF8.GetString(buffer);

                guid   = new Guid(buffer);
                shGuid = new ShGuid(guid, settings);
                return(true);
            }
            catch (FormatException)
            {
                return(false);
            }
        }