コード例 #1
0
        public override int GetHashCode()
        {
            var providerGroupRoot = ProviderGroupRoot == null ? "(GroupIsNull)" : ProviderGroupRoot.ToString();
            var providerId        = ProviderId ?? "(ProviderIdNull)";

            return((Value.ToString() + providerId + providerGroupRoot).GetHashCode());
        }
コード例 #2
0
        public string ToString(HiveIdFormatStyle style)
        {
            switch (style)
            {
            default:
            case HiveIdFormatStyle.AsUri:
                return(ToUri().ToString());

            case HiveIdFormatStyle.UriSafe:
                var valueType = Value.Type.ToString().ToLower();
                var value     = HiveEntityUriEncode(Value.ToString());

                var valueTypeForOutput = ProviderGroupRoot == null && string.IsNullOrEmpty(ProviderId) ? valueType : FormatValue(valueType);
                var outputBuilder      = new StringBuilder();
                if (ProviderGroupRoot != null)
                {
                    // If it's just a root, don't trim it
                    var groupRoot = ProviderGroupRoot.ToString();
                    if (groupRoot.EndsWith("/") && !groupRoot.EndsWith("://") && !groupRoot.EndsWith(":///"))
                    {
                        groupRoot = groupRoot.TrimEnd('/');
                    }
                    outputBuilder.Append(HiveEntityUriEncode(groupRoot));
                    outputBuilder.Append(UriSafeDelimiter);
                }
                if (!string.IsNullOrEmpty(ProviderId))
                {
                    outputBuilder.Append(FormatForUriSafePart(FormatProviderId(ProviderId)));
                    outputBuilder.Append(UriSafeDelimiter);
                }
                outputBuilder.Append(FormatForUriSafePart(valueTypeForOutput));
                outputBuilder.Append(UriSafeDelimiter);
                outputBuilder.Append(FormatForUriSafePart(value));

                return(outputBuilder.ToString());
            }
        }